MySQL从搜索问题开始

Jam*_*oll 34 mysql sql sql-like

我在使用%带有MySQL查询的通配符时遇到问题.

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

读完那篇文章后,我正在使用%而不是得到我所期待的.

我有一系列的价值观,比如

1_1
1_2
2_1
2_2... etc
Run Code Online (Sandbox Code Playgroud)

包含

11_1
11_2
Run Code Online (Sandbox Code Playgroud)

现在,在某些情况下,我想特别返回那些值= 11_2,或1_2等等.这很好

WHERE fieldName = '11_2'
Run Code Online (Sandbox Code Playgroud)

等...正如预期的那样

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

从w3Schools链接,我期待

WHERE fieldName LIKE '1_%'
Run Code Online (Sandbox Code Playgroud)

为了找到以1_特定方式开头的任何内容,因此,在我的示例中,返回:

1_1
1_2
Run Code Online (Sandbox Code Playgroud)

但是,它也会回来

11_1
11_2
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我怎么能过来呢?

mar*_*ord 71

Underscore是单个字符的通配符.您需要将SQL更改为:

WHERE fieldName LIKE '1%'
Run Code Online (Sandbox Code Playgroud)

或者你可以逃避下划线

WHERE fieldName LIKE '1\_%' 
Run Code Online (Sandbox Code Playgroud)