MySQL 从搜索问题开始

标签 mysql sql sql-like

在 MySQL 查询中使用 % 通配符时遇到问题。

http://www.w3schools.com/sql/sql_like.asp

阅读了那篇文章后,我正在使用 % 并没有达到我的预期。

我有一系列的值,比如

1_1
1_2
2_1
2_2... etc

包括

11_1
11_2

现在,在某些情况下,我想专门返回值 = 11_21_2 等的那些。这很好用

WHERE fieldName = '11_2'

等等……如预期的那样

但是,在某些情况下,我想查找以 1 开头的所有项目或以 11

开头的所有项目

从 w3Schools 链接,我期待

WHERE fieldName LIKE '1_%'

专门查找以 1_ 开头的任何内容,因此,在我的示例中,返回:

1_1
1_2

但是,它也会返回

11_1
11_2

这是为什么?我该如何克服呢?

最佳答案

下划线是单个字符的通配符。您需要将 SQL 更改为:

WHERE fieldName LIKE '1%'

或者你可以转义下划线

WHERE fieldName LIKE '1\_%' 

关于MySQL 从搜索问题开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605999/

相关文章:

mysql - SQL:可以用更好的方法解决吗?

带有索引的 mysql 日期时间字段获得范围 'like' 与 'between and' 性能

doctrine-orm - 学说2标准 - 像运算符

Mysql 单元包含需要格式化才能用于 IN 语句的包含列表?

php - 使用动态数量的 LIKE 条件构建 SELECT 查询作为 mysqli 准备语句

php - 尝试插入 mysql 数据库忽略空白字段

MySQL 选择并匹配两个表并根据匹配的数据更新列

mysql - 使用 UPDATE 时转义 mysql 语句中的特殊字符

php - 当我在两个表中输入一条记录时,总金额可以,如果我在第二个表中插入第二条记录,总金额将增加一倍

sql - 使用 merge 语句将 Identity 设置为 ON