我有一个这样的mysql语句
$sql_insertwotd = "SELECT * FROM table WHERE word != '' AND word NOT LIKE '%\_%' ORDER BY RAND() LIMIT 1";
由于某种原因,它仍然会拉出一个带下划线的单词。我读到这是用 .
我不希望它选择包含下划线的单词
我有一个这样的mysql语句
$sql_insertwotd = "SELECT * FROM table WHERE word != '' AND word NOT LIKE '%\_%' ORDER BY RAND() LIMIT 1";
由于某种原因,它仍然会拉出一个带下划线的单词。我读到这是用 .
我不希望它选择包含下划线的单词
您可能需要显式转义:
word NOT LIKE '%/_%' ESCAPE '/'
https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
默认情况下 \ 是转义字符,您的查询应该按原样工作。
你必须使用TWO BACKSLASHES
( \\
) 它应该可以工作
SELECT * FROM table WHERE word != '' AND word NOT LIKE '%\\_%'
ORDER BY RAND() LIMIT 1