我使用以下 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");
“内容”字段是包含推文的文本字段。
我遇到的问题是如果我搜索'Sstack Overflow' 我得到了所有包含 'Stack Overflow' 的结果,但当文本为 ' 时没有结果s堆栈溢出'。基本上搜索是区分大小写的。
是否可以更改查询或 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");
- 我已经添加
strtolower
使$search_word_fix
全部小写。
- 在 where 子句中我已经改变了
content
to lower(content)
以便
我与小写的比较content
.
您可以按照其他答案中的建议在查询中进行这两项更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)