我有一个表,用户以小写字母(例如:arup)和大写字母(例如:Arup)或两者(例如:aRuP)输入用户名。
但我现在的问题是,如果我搜索数据库以显示像%Arup这样的成员用户名,那么如果没有完全找到,mysql会返回空结果。
id | username | name | sex
1 arUp Arup Sarma Male
<?php
$q=strip_tags($_POST['user']); /// eg. Arup
$qry=mysql_fetch_row(mysql_query("SELECT id,name,sex FROM membertable WHERE username='%$q'"));
echo $qry['0']."<br>".$qry['1']."<br>".$qry['2'];
?>
/// Now above sql query will return zero result as there is no username in the form of arUp.
如何使SQL查询不区分大小写? 有人请帮忙......
答案 0 :(得分:5)
我认为this link有助于理解您的问题...... 无论如何,你可以用这个来解决你的问题:
SELECT * FROM your_table
WHERE LOWER(username) LIKE '%arup'
答案 1 :(得分:2)
您可以在比较的两边调用UPPER
:
SELECT id,name,sex FROM membertable WHERE UPPER(username) = UPPER('%$q')
根据官方手册,“正确的方式”是choosing a case-insensitive collation,可能更快,但也更复杂。
答案 2 :(得分:0)
基于此: http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
我试试这个:
where username COLLATE latin1_swedish_ci = '%$q'