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

标签 php mysql sql sql-server

早上好,我在查询 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 开头的行。

我在谷歌研究后了解到,您不能将通配符与数字一起使用。是这样吗?

有解决我的查询问题的方法吗?

提前致谢。

最佳答案

您的查询是

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/

相关文章:

java - 获取 json 错误 : end of input at character 0 of

mysql - sql显示开始日期和结束日期之间的日期

MySQL错误语法

mysql - 如果触发器中存在条件,如何在 MySQL 表中插入记录

php - 如何在网站后端存储图像文件

mysql - 通过 IN 子句选择,但行为应类似于 AND

mysql - 如何使用单个查询更新表中多个列的值?

javascript - Ajax /PHP/JSON : One GET parameter is missing

php - 推进类重建后 "Base Query"内的多个函数声明

php - Google Calendar API PHP 通知到期值