代碼:
SELECT
u.id,
u.loginName NAME,
u.memberType type,
u.fanDian AS fan,
(
SELECT
ifnull(sum(a.money), 0)
FROM
emep_Account a
WHERE
a.type IN (2,8)
AND MATCH(a.parents) AGAINST (u.id)
) fanDian
FROM
emep_user u
WHERE
u.id = 80182
OR u.parentId = 80182
以上代碼如果把MATCH(a.parents) AGAINST (u.id) 里面的u.id換成 ‘80182’ 就可以執行,否則報錯[Err] 1210 - Incorrect arguments to AGAINST
uj5u.com熱心網友回復:
AGAINST()函式中的引數需為在查詢評估期間保持不變的字串常量uj5u.com熱心網友回復:
如果是可變的沒辦法嗎??uj5u.com熱心網友回復:
我這個以前是用的like 可是like查詢好慢,所以想換用這個。還有其他更好方式嗎???
uj5u.com熱心網友回復:
那可以通過什么方式可以把他變為靜態的再去查,能不能通過存盤程序呢?
uj5u.com熱心網友回復:
針對你給出的陳述句,寫個函式可以create function f_test(id text)
returns decimal(18,2)
return(
SELECT
IFNULL(SUM(a.money), 0)
FROM
emep_Account a
WHERE
a.type IN (2 , 8)
AND MATCH (a.parents) AGAINST (id)
);
SELECT
u.id,
u.loginName NAME,
u.memberType type,
u.fanDian AS fan,
f_test(u.id) fanDian
FROM
emep_user u
WHERE
u.id = 80182 OR u.parentId = 80182
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/99617.html
標籤:MySQL
