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'
而使用
SELECT * FROM `user` WHERE (`real_name` like '%刘大军%' or `tel` like '%刘大军%' or `rid` like '%刘大军%') and `status`='1'
但是感觉 like 不是很严谨
网上搜索了好一阵子
也找不到 varchar 和 int 针对一个字符串值精确匹配的相关文章
虽然我也知道 int 是面向整数的
第一条语句怎么写才能准确的用 real_name 和 tel 匹配姓名字符串 而使用 rid 来匹配纯数字的证件号呢?
求解惑
1
msg7086 2017-09-27 23:00:41 +08:00
if rid 是数字
select 三个条件 else select 两个条件 |