我使用以下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"时返回大写和小写结果?
你可以试试:
$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所有小写字母。content为,lower(content)以便与的小写字母进行比较
content。您可以按照其他答案中的建议在查询中进行这两项更改。