MySQL数据库一个字段对应多个值&多个字段对应一个值的模糊查询

kyle 2017-10-10 1355次浏览 0条评论 0 打赏作者 0 0

当一个字段想模糊查询出多个内容的时候,正常情况下SQL语句一般会这么写

SELECT name FROM dev WHERE name LIKE 'PHP%' OR name LIKE '%SQL%'; // ... OR ...

但是上面的情况只能应对少量的模糊查询值,过多则会出现非常麻烦的SQL语句拼接

这时我们可以采用正则表达式进行匹配(关键字 REGEXP)

SELECT name FROM dev WHERE name  REGEXP 'PHP|SQL';  // REGEXP 'PHP|SQL|...'


当多个字段想模糊查询一个值的时候,正常情况下SQL语句可能会这么写

SELECT * FROM `province` WHERE `name` LIKE '%南%' OR `short` LIKE '%南%' OR `head` LIKE '%南%';  // ... OR ...

但是上面的情况只能应对少量的模糊查询值,过多则会出现非常麻烦的SQL语句拼接

这时我们可以采用系统函数灵活运用匹配(关键字 CONCAT)

SELECT * FROM `province` WHERE CONCAT(`name`,`short`,`head`) LIKE '%南%';  // CONCAT(`name`,`short`,`head`,`...`)


0

0 条评论

    没有找到数据。

发表评论

kyle
土豪

kyle

注册时间:2016-10-28
最后登录:25天前
发布
带到手机上看