我在php中有一个mysql查询,使用match/against来过滤结果。我试图在$ string之后得到通配符,所以下一个字符可以是任何东西。帮帮我?针对通配符的mysql查询
"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)"
我在php中有一个mysql查询,使用match/against来过滤结果。我试图在$ string之后得到通配符,所以下一个字符可以是任何东西。帮帮我?针对通配符的mysql查询
"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)"
使用*
而不是%
作为通配符使用MATCH (...) AGAINST (...)
时:
"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)"
不嵌入变量为双引号字符串和你设置:
"SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)"
话虽这么说,我无法证实这是有效的SQL。但至少它会确保你的变量被正确地扩展,如果它不起作用,那么它不会因为PHP。
以防万一这个提醒会有用,nevar忘记escape data that goes into a query。