我想要搜索特定字段或者STARTS WITH某個字符串(比方說「ar」)或該字段包含字符串「ar」的記錄。SQL語句的WHERE子句中的加權條件
但是,我認爲這兩個條件不同,因爲我限制返回到10的結果數量,我希望STARTS WITH條件比CONTAINS條件的權重更重。
例子:
SELECT *
FROM Employees
WHERE Name LIKE 'ar%' OR Name LIKE '%ar%'
LIMIT 10
美中不足的是,是,是否有與「AR」,就應該受到青睞開頭的名稱。我應該找回一個只包含「ar」的名稱的唯一方法是,如果有少於10個名稱的開頭爲「ar」
如何對MySQL數據庫執行此操作?
+1。同意,這是更有效的。 – mellamokb
這似乎適用於我。你能解釋一下嗎?我理解(一般來說)聯盟的含義。什麼是X和Y以及什麼是1和2? –
@Stephen - X和Y只是給子查詢的別名(每個派生表必須是別名 - 以便可以在需要時引用它們)。您可以添加一列到任何結果集,只需給出一個值並命名(別名)該列即可。在這種情況下,我在第一部分中添加了一個名爲「Preferred」的列,其值爲1,第二部分中的值爲2。列現在是結果的一部分(用於查詢)。 – RichardTheKiwi