voglio cercare i record in cui un campo particolare o inizia con qualche stringa (diciamo "ar") o quel campo contiene la stringa, "ar".condizioni calibrati nella clausola WHERE di un'istruzione SQL
Tuttavia, considero le due condizioni diverse, perché sto limitando il numero di risultati restituiti a 10 e voglio che la condizione STARTS WITH sia ponderata più pesantemente della condizione CONTAINS.
Esempio:
SELECT *
FROM Employees
WHERE Name LIKE 'ar%' OR Name LIKE '%ar%'
LIMIT 10
Il problema è che è che se ci sono nomi che iniziano con "ar" dovrebbero essere favoriti. L'unico modo in cui dovrei recuperare un nome che CONTIENE solo "ar" è se ci sono meno di 10 nomi che iniziano con "ar"
Come posso farlo contro un database MySQL?
+1. D'accordo, questo è più efficiente. – mellamokb
Questo sembra funzionare per me. Puoi spiegarlo a tutti?Capisco (in generale) cosa significa unione. Quali sono X e Y e qual è il, 1 e, 2? –
@Stephen - X e Y sono solo alias assegnati alle sottoquery (ciascuna tabella derivata deve essere aliasata, in modo che possano essere referenziate se necessario). È possibile aggiungere una colonna a qualsiasi set di risultati, semplicemente assegnando un valore e denominando (aliasing) la colonna. In questo caso, ho aggiunto una colonna denominata "Preferred" con un valore di 1 nella prima parte e un valore di 2 nella seconda parte. Le colonne ora fanno parte del risultato (per l'interrogazione). – RichardTheKiwi