2015-03-31 29 views
0

假設我有一列名爲CustomerNames與價值觀:在每一個空間分隔值的字符串搜索列在數據庫

  1. 地區葡萄酒等冷卻士
  2. MAGAZZINI imentari裏尤尼蒂紡織廠
  3. 飢餓的貓頭鷹Al夜間雜貨店
  4. 斯普利特啤酒& Al個é
  5. FREDS Futterkiste

我想打一個查詢,將只搜索的名字和姓氏的第一個字母,並列出基於FIRSTNAME LASTNAME然後ASC順序的名稱。 例如,如果我搜索在上表中「人」,它應該返回我的東西象下面這樣:

  1. FREDS Futterkiste
  2. 地區葡萄酒等冷卻士
  3. 分離軌啤酒& Ë
  4. MAGAZZINI imentari裏尤尼蒂工廠
  5. 紅ry Owl Al l-Night Grocers

我已經使用了下面的查詢。

SELECT * FROM Customers where CustomerName LIKE 'al%' OR CustomerName LIKE '% al%' ORDER BY CustomerName 

輸出:

  1. FREDS Futterkiste
  2. 飢餓的貓頭鷹升晚雜貨店
  3. MAGAZZINI imentari裏尤尼蒂紡織廠
  4. 分離軌啤酒& è
  5. 地區葡萄酒等冷卻士

這是唯一firstnames的基礎上排序結果。 但我想要一個查詢,它使用名字和姓氏給出輸出。 謝謝。

+0

我很抱歉,但我不明白如何區分名字和姓氏,如果他們都在一列... – 2015-03-31 04:53:00

+0

你不需要通過給他們任何名稱來區分它,可以說這些值是空間分開的值,我想優先考慮第一個單詞(在第一個空格出現之前),然後下一個然後跟隨ng – 2015-03-31 05:01:16

回答

0

試試這個:

SELECT * FROM Customers 
where CustomerName LIKE 'al%' 
OR CustomerName LIKE '% al%' 
ORDER BY substring(CustomerName, instr(CustomerName, 'al')) 
+0

錯誤,不存在這樣的函數:instr – 2015-03-31 06:50:42

+0

instr從MySQL版本支持:5.6 – Mani 2015-03-31 06:55:34

+0

好吧,所以它的工作,但沒有提供所需的結果。即1.)Vins et alcools Chevalier 2.)Split Rail Beer&Ale 3.)Alfreds Futterkiste 4.)Magazzini Alimentari Riuniti 5.)飢餓的貓頭鷹通宵雜貨店 – 2015-03-31 08:02:17

相關問題