SELECT DISTINCT e. *
FROM elgg_entities e
JOIN elgg_metadata n_table ON e.guid = n_table.entity_guid
JOIN elgg_metastrings msn ON n_table.name_id = msn.id
JOIN elgg_users_entity ue ON e.guid = ue.guid
JOIN elgg_metadata md ON e.guid = md.entity_guid
JOIN elgg_metastrings msv ON n_table.value_id = msv.id
WHERE (
(
(
MATCH (
ue.username, ue.name
)
AGAINST (
'+gastro +surgeon'
IN BOOLEAN
MODE
)
)
)
OR (
(
(
(
(
(
msn.string
IN (
'breifdescription'
)
)
AND (
( 1 =1 )
AND (
n_table.enabled = 'yes'
)
)
)
)
)
AND msv.string LIKE '%gastro surgeon%'
)
)
)
AND (
(
e.type = 'user'
)
)
AND (
e.site_guid
IN ( 1 )
)
AND (
( 1 =1 )
AND (
e.enabled = 'yes'
)
)
LIMIT 0 , 30
但这没有返回任何搜索结果,而像下面这样的简单搜索查询正在工作
SELECT *
FROM `elgg_metastrings`
WHERE `string` LIKE '%gastro surgeon%'
LIMIT 0 , 30
如果搜索的字符串只有一个单词(例如外科医生,医师等),则相同的查询工作正常。如果查询的字符串超过一个,则查询失败。
尝试了很多调试。 但是没有成功。 有人对第一个查询为什么失败有想法吗?