早上好,我在查询 varchar 字段中查找记录时遇到了一点问题。
我的表由两个字段组成:codice 和 giacenza,其中 codice 是一个 varchar 字段类型。
我需要找到所有以数字开头的记录。
我试过的查询是:
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR '160%'
还有这个:
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR '160_'
但返回给我所有记录,而不仅仅是以 AC 和 160 开头的行。如果我删除 OR '160%' 或 OR '160_',查询返回正确的记录:只有以 AC 开头的行。
我在谷歌研究后了解到,您不能将通配符与数字一起使用。是这样吗?
有解决我的查询问题的方法吗?
提前致谢。
最佳答案
您的查询是
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR '160%'
处理时,代码将被视为
( codice like 'AC%') // codition 1 which will True or false
OR ('160%') // condition 2 will always true
one codition True in OR means expression true for all
这意味着 ('160%') 将始终对所有行产生 true
查询应该是这样的
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR codice like '160%'
关于php - 使用 LIKE 语句在 varchar 字段中搜索数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077988/