0

我有一个这样的mysql语句

$sql_insertwotd = "SELECT * FROM table WHERE word != '' AND word NOT LIKE '%\_%' ORDER BY RAND() LIMIT 1";

由于某种原因,它仍然会拉出一个带下划线的单词。我读到这是用 .

我不希望它选择包含下划线的单词

4

2 回答 2

0

您可能需要显式转义:

word NOT LIKE '%/_%' ESCAPE '/'

https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

默认情况下 \ 是转义字符,您的查询应该按原样工作。

于 2013-05-28T07:17:29.407 回答
0

你必须使用TWO BACKSLASHES( \\) 它应该可以工作

SELECT * FROM table WHERE word != '' AND word NOT LIKE '%\\_%' 
ORDER BY RAND() LIMIT 1
于 2013-05-28T07:13:17.943 回答