[英]MySQL search problem to find lowercase and uppercase letters at the sametime
我有一個表,用戶在其中輸入小寫(例如: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查詢不區分大小寫? 有人幫忙...
我認為此鏈接可以幫助您了解問題...
無論如何,您可以通過以下方式解決您的問題:
SELECT * FROM your_table
WHERE LOWER(username) LIKE '%arup'
您可以在比較的兩端調用UPPER
:
SELECT id,name,sex FROM membertable WHERE UPPER(username) = UPPER('%$q')
根據官方手冊,“正確的方法”是選擇不區分大小寫的排序規則 ,它可能更快但也更復雜。
基於此: http : //dev.mysql.com/doc/refman/5.0/en/case-sensitiveivity.html
我會嘗試這樣的:
where username COLLATE latin1_swedish_ci = '%$q'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.