我第一次使用SQL的MATCH ACTION,但无法获得所需的结果。这是我的问题:
SELECT *
FROM fondslijst
WHERE MATCH(Benaming, Verpakking, Auteur01, Auteur02, Auteur03, Auteur04, Auteur05, Auteur06, Auteur07, Auteur08, Auteur09, Auteur10) AGAINST('%dagelijks%')
它与包含'dagelijks'
和'dagelijks '
(带空格(的列正确匹配,但与包含'dagelijkse'
(带e(的列不匹配。我怀疑我需要使用某种通配符,但我不确定是哪种或如何。。。
尝试使用这个:
SELECT *
FROM fondslijst
WHERE MATCH(Benaming, Verpakking, Auteur01, Auteur02, Auteur03, Auteur04, Auteur05, Auteur06, Auteur07, Auteur08, Auteur09, Auteur10) AGAINST('dagelijks *' IN BOOLEAN MODE)
在这里你可以找到一些文档
编辑:添加匹配列
SELECT
*
, CASE
WHEN Benaming LIKE '%dagelijks%' THEN 'Benaming'
WHEN Verpakking LIKE '%dagelijks%' THEN 'Verpakking'
WHEN Auteur01 LIKE '%dagelijks%' THEN 'Auteur01
WHEN Auteur02 LIKE '%dagelijks%' THEN 'Auteur02'
WHEN Auteur03 LIKE '%dagelijks%' THEN 'Auteur03'
WHEN Auteur04 LIKE '%dagelijks%' THEN 'Auteur04'
WHEN Auteur05 LIKE '%dagelijks%' THEN 'Auteur05'
WHEN Auteur06 LIKE '%dagelijks%' THEN 'Auteur06'
WHEN Auteur07 LIKE '%dagelijks%' THEN 'Auteur07'
WHEN Auteur08 LIKE '%dagelijks%' THEN 'Auteur08'
WHEN Auteur09 LIKE '%dagelijks%' THEN 'Auteur09'
WHEN Auteur10 LIKE '%dagelijks%' THEN 'Auteur10'
END as MatchingColumn
FROM fondslijst
WHERE MATCH(Benaming, Verpakking, Auteur01, Auteur02, Auteur03, Auteur04, Auteur05, Auteur06, Auteur07, Auteur08, Auteur09, Auteur10) AGAINST('dagelijks *' IN BOOLEAN MODE)