使用 LIKE 语句在 varchar 字段中搜索数字

Posted

技术标签:

【中文标题】使用 LIKE 语句在 varchar 字段中搜索数字【英文标题】:Search number in a varchar field using LIKE statement 【发布时间】:2014-06-06 09:02:54 【问题描述】:

早上好,我在查询 varchar 字段中查找记录时遇到了一点问题。

我的表格由两个字段组成:codicegiacenza,其中 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 字段中搜索数字的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL 中使用 LIKE 和部分匹配的 VARCHAR 字段的索引?

在sql语句中,like所有的用法

mysql怎么用like检索字段中带有数字的语句?

SQL中如果进行模糊查询整个表

如何在数据库里 用like语句查询成语 !

用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?