当一个字段想模糊查询出多个内容的时候,正常情况下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 条评论