使用 LIKE 语句在 varchar 字段中搜索数字
Posted
技术标签:
【中文标题】使用 LIKE 语句在 varchar 字段中搜索数字【英文标题】:Search number in a varchar field using LIKE statement 【发布时间】:2014-06-06 09:02:54 【问题描述】:早上好,我在查询 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 开头。
我在与谷歌的研究后读到,你不能将通配符与数字一起使用。是这样的吗?
有什么方法可以解决我的这个查询问题?
提前致谢。
【问题讨论】:
试试这个你错过的like keyword
和 OR - SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR like '160%'
【参考方案1】:
您的查询是
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%') 将始终对所有行结果为真
查询应该是这样的
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR codice like '160%'
【讨论】:
【参考方案2】:SELECT codice,
giacenza
FROM prodotti
WHERE codice LIKE 'AC%'
OR codice LIKE '160%'
【讨论】:
嗨,欢迎来到 SO Victor。该站点允许一些不错的代码格式。它使问题和答案看起来更好,也更容易阅读。请考虑调查一下:) 我想够了进入OR,不必重复多次声明。谢谢以上是关于使用 LIKE 语句在 varchar 字段中搜索数字的主要内容,如果未能解决你的问题,请参考以下文章