aaa not like '%bbb%'
解决方案 »
- 求大神帮找下linux下的mysql4.0.20升级到mysql4.0.25补丁,缓冲区漏洞问题,急需补丁
- 表的插入问题
- mysql timestamp查询时候自动更新问题
- 急,请教一句sql语句,知道的帮忙答一下
- MySQL插入数据库的瞬间时区改变
- 我从txt文件导入的数据不能正常显示名字,有人遇见过吗?
- MySQL什么时候会自动停止?
- MySQL Administrator中怎样象SQLSERVER中打开表 返回所有行在那里?
- 只有*.mdf文件没有了*.ldf文件如何还原SQL库,急
- 如何在php的程序中实现mysqldump功能
- 寻找中文教程!一定给分!!!
- 请问Linux下我的mysqlgui客户端为什么连不到mysql的服务端呢?该怎么办呢?
那如果bbb中包含了%或者'应该怎么办呢??
用 aaa not like "ddf%a" 的话,两个都出不来啊
我需要的是精确的匹配 ddf%a 这个字符串,这里%不是通配符我的字段aaa中有两个值
aaa
----
eeeddf%aeee
eeeddfaaeee我现在使用一个sql语句
select * from table where aaa not like '%ddf%a%'
希望返回
aaa
---
eeeddfaaeee可是由于数据库将%当作通配符,所以没有返回值请问这个问题如何解决??
转义一个“%”符。
MySQL识别下列转义字符: \0
一个ASCII 0 (NUL)字符。
\n
一个新行符。
\t
一个定位符。
\r
一个回车符。
\b
一个退格符。
\'
一个单引号(“'”)符。
\"
一个双引号(“"”)符。
\\
一个反斜线(“\”)符。
\%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
\_
一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“\%”或“\%_”,这些将返回字符串“\%”和“\_”而不是“%”和“_”。 有几种方法在一个字符串内包括引号: 一个字符串内用“'”加引号的“'”可以被写作为“''”。
一个字符串内用“"”加引号的“"”可以被写作为“""”。
你可以把一个转义字符(“\”)放在引号前面。
一个字符串内用“"”加引号的“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串内用“'”加引号的与“"”也不需要特殊对待。
下面显示的SELECT演示引号和转义如何工作: mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+mysql> SELECT "This\nIs\nFour\nlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+
如果你想要把二进制数据插入到一个BLOB列,下列字符必须由转义序列表示: NUL
ASCII 0。你应该用'\0'(一个反斜线和一个ASCII '0')表示它。
\
ASCII 92,反斜线。用'\\'表示。
'
ASCII 39,单引号。用“\'”表示。
"
ASCII 34,双引号。用“\"”表示。
重新翻译并理顺了语句http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=16556