我有一个这样的查询:
SELECT products.* FROM products
WHERE products.code = 'search word' OR products.id IN(SELECT product_names.product_id
FROM product_names
WHERE MATCH (product_names.name)
AGAINST ('+search* +word*' IN BOOLEAN MODE)
ORDER BY product_names.sorting_field)
ORDER BY ???
我希望主查询的顺序与
WHERE IN()
相同。但我似乎无法使用 FIELD
或 FIND_IN_SET
,因为不知道从 MATCH AGAINST
中返回了什么。我尝试了一些类似于
ORDER BY FIELD(products.id, product_names.product_id)
的方法,但是没能让它起作用。实际上,我的查询语句更长、更复杂,这只是一个伪码版本。我不能在子查询之外执行
MATCH AGAINST
。
MATCH AGAINST
*”? - eggyal