我想使用PHP和SQL進行良好的搜索。我正在考慮使用SQL運算符LIKE(例如:SELECT * FROM Customers WHERE Country LIKE '%land%
'),但我希望顯示的第一個元素是以「land」開頭的元素。我怎樣才能做到這一點?我不想對數據庫執行多個查詢,因爲我認爲這是一個壞主意(但我可能是錯的)。使用SQL搜索
Q
使用SQL搜索
1
A
回答
5
您可以通過該國是否與land
開始訂購。 MySQL的,我猜你使用,在數值範圍內引用時翻譯真/假以1/0的實用的功能,所以這將是很容易做到:
SELECT *
FROM Customers
WHERE Country LIKE '%land%'
ORDER BY Country LIKE 'land%' DESC
其他RDBMS可能沒有這樣的待遇布爾的,但你可以自己一個case
表達始終貫徹它:
SELECT *
FROM Customers
WHERE Country LIKE '%land%'
ORDER BY CASE WHEN Country LIKE 'land%' THEN 1 ELSE 0 END DESC
2
我建議不要使用LIKE來實現搜索,它有很多限制。但是,如果你的使用情況很簡單,在這裏你去:
SELECT 1 as orderby, *
FROM Customers
WHERE Country LIKE 'land%'
union all
SELECT 2, *
FROM Customers
WHERE Country LIKE '_%land%'
order by orderby
這種方法允許你創建排序
1
這幾個級別將返回任何與land
第一,然後一切開始。 您需要專門列出您的字段。
SELECT field1, field2, field3, etc
FROM customers
WHERE country LIKE 'land%'
UNION ALL
SELECT field1, field2, field3, etc
FROM customers
WHERE country LIKE '%land%'
AND country NOT LIKE 'land%'
或使用查詢的第二部分子查詢,如果您說customerid
場。
SELECT field1, field2, field3, etc
FROM customers
WHERE country LIKE 'land%'
UNION ALL
SELECT field1, field2, field3, etc
FROM customers
WHERE country LIKE '%land%'
AND customerid NOT IN (SELECT customerid
FROM customers
WHERE country LIKE 'land%')
2
的UNION運算符是你在找什麼:
SELECT * FROM Customers
WHERE Country LIKE 'land%'
UNION
SELECT * FROM Customers
WHERE Country LIKE '%land%';
相關問題
- 1. 搜索使用SQL
- 2. 使用變量來搜索使用sql
- 3. 搜索結果Rails SQL - 搜索用戶
- 4. SQL索引搜索
- 5. SQL索引搜索
- 6. 使用sql server 2008搜索地址匹配全文搜索
- 7. 使用簡單的ASP.NET搜索欄搜索SQL Server表
- 8. 使用SQL搜索時更高級的搜索引擎功能
- 9. 使用SQL Server搜索短語全文搜索
- 10. 使用Java搜索SQL數據庫(多文本字段搜索)
- 11. SQL:使用IN子句搜索列值
- 12. 使用SQL Server關鍵字搜索
- 13. 搜索使用短語SQL Server查詢
- 14. Twitter Hashtag搜索使用php和sql
- 15. SQL - SSRS搜索值列表使用LIKE
- 16. SQL搜索使用4個變量
- 17. Bacula使用sql查詢搜索文件
- 18. SQL Server使用FREETEXTABLE搜索多個列
- 19. 如何使用sql查詢搜索birthdate?
- 20. 使用sql進行關鍵字搜索
- 21. 使用撇號SQL Server全文搜索
- 22. SQL搜索使用像不工作
- 23. 使用ElasticSearch模擬SQL LIKE搜索
- 24. Windows搜索使用OLE DB SQL字段
- 25. 修改VB.net SQL搜索使用模式
- 26. LINQ-to-SQL:使用CSV進行搜索
- 27. 使用Linq to SQL搜索整個詞
- 28. SQL中使用全文搜索
- 29. SQL SELECT查詢使用搜索
- 30. 如何搜索和使用SQL
'LIKE「%的土地」'你去那裏。 –
是的,我知道,但我想顯示其他解決方案,因爲這個原因我正在使用LIKE。 – CCT
你需要澄清你的意思。如果你想讓那些以'land'作爲@ Fred-ii-開始的建議。如果你想要更多的其他結果解釋。 – chris85