CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `real_name` varchar(10) NOT NULL, `tel` varchar(25) DEFAULT NULL, `rid` int(10) DEFAULT NULL, `status` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=207 DEFAULT CHARSET=utf8 原意是用户在一个 input 里面输入姓名或者电话或者证件号码都能查询登录
使用
SELECT * FROM `user` WHERE (real_name='刘大军' or tel='刘大军' or `rid`='刘大军') and status='1' 会获取到连同正确的那条在内的一共 3 条记录 结果不唯一 显然不对
而使用
SELECT * FROM `user` WHERE (`real_name` like '%刘大军%' or `tel` like '%刘大军%' or `rid` like '%刘大军%') and `status`='1' 则能获取唯一的一条正确的记录
但是感觉 like 不是很严谨
网上搜索了好一阵子
也找不到 varchar 和 int 针对一个字符串值精确匹配的相关文章
虽然我也知道 int 是面向整数的
第一条语句怎么写才能准确的用 real_name 和 tel 匹配姓名字符串 而使用 rid 来匹配纯数字的证件号呢?
求解惑
