2015-03-02 57 views
0

我在我的數據庫中有一個名爲contact的表。它有以下幾列:名稱,手機和雙龍。問題是我試圖獲得所有twon='Dubai',但是當我執行我的查詢時,它只檢索81000行,但總數爲130000.剩餘的其他行沒有出現在我的查詢中。我的SQL查詢不檢索數據庫中的所有數據

我的查詢:

SELECT * FROM `contact` WHERE `twon` = 'Dubai' 

誰能告訴我在哪裏,我錯了,或者幫助我從表訪問所有數據?

+0

'trim(twon)='Dubai''怎麼樣? – 2015-03-02 12:30:10

回答

2

=將獲取的記錄。

嘗試用LIKETRIMLOWER:如果twon列包含單詞 '迪拜'

SELECT * FROM `contact` WHERE LOWER(TRIM(`twon`)) LIKE '%dubai%' 

這個查詢將獲取的記錄。

1

不同的事情可能是錯誤的。
如果您發佈應該返回的行的示例,它將對我們有所幫助。

  • 大小寫敏感性

如果區分大小寫是一個問題(例如, '迪拜' 或 '迪拜' 不退還),你可以使用LOWER功能

SELECT * FROM `contact` WHERE LOWER(`twon`) = 'dubai' 
  • 額外空白

在某些情況下,列內容中的k將會失敗,例如「迪拜」和「迪拜」。您可以使用TRIM函數去除尾隨和前導空白。

SELECT * FROM `contact` WHERE TRIM(`twon`) = 'Dubai' 
  • 組合

結合使用這兩種都可以工作,太。但僅在列值正是「迪拜」

SELECT * FROM `contact` WHERE LOWER(TRIM(`twon`)) = 'dubai'