簡體   English   中英

MySQL搜索問題,以同時查找小寫和大寫字母

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM