I have a SQL that can be simplified to:
SELECT *
FROM table
WHERE LOCATE( column, :keyword ) > 0
ORDER BY LOCATE( column, :keyword )
You can see there is a duplicate of "LOCATE( column, :keyword )". Is there a way to calculate it only once ?
SELECT *, LOCATE( column, :keyword ) AS somelabel
FROM table
WHERE somelabel > 0
ORDER BY somelabel
HAVING works with aliases in MySQL:
SELECT *, LOCATE( column, :keyword ) AS somelabel
FROM table
HAVING somelabel > 0
ORDER BY somelabel
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With