PHP/Mysql搜索 - 区分大小写

CLi*_*own 5 php mysql

我使用以下PHP和MySql从表中获取行,

$search_word=$_GET['search_word'];
$search_word_new=mysql_escape_string($search_word);
$search_word_fix=str_replace(" ","%",$search_word_new);
$sql=mysql_query("SELECT * FROM tweets WHERE content LIKE '%$search_word_fix%' ORDER BY votes DESC LIMIT 20");
Run Code Online (Sandbox Code Playgroud)

'content'字段是包含推文的TEXT字段.

我的问题是,如果我搜索" 小号 tackoverflow"我得到的所有包含"#1"的结果,但没有结果文本为" 小号 tackoverflow".基本上搜索区分大小写.

是否可以更改查询或PHP,以便在搜索"Stackoverflow"时返回大写和小写结果?

cod*_*ict 5

你可以试试:

$search_word_fix=strtolower(str_replace(" ","%",$search_word_new));
$sql=mysql_query("SELECT * FROM tweets WHERE lower(content) LIKE '%$search_word_fix%' ORDER BY votes DESC LIMIT 20");
Run Code Online (Sandbox Code Playgroud)
  • 我添加strtolower$search_word_fix所有小写​​字母。
  • 在where子句中,我已更改 content为,lower(content)以便与的小写字母进行比较 content

您可以按照其他答案中的建议在查询中进行这两项更改。