2 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用一個(gè)變量兩次引用相同的替換參數(shù):
WHERE IF((@selected_categories:=:selected_categories)='*',1,FIND_IN_SET(category_name,@selected_categories))
并測試一些您想要表示全部的值(在本例中為“*”,您可以使用 ='' 或 IS NULL 或其他值)。
有些人更喜歡使用 SQL 標(biāo)準(zhǔn) CASE 而不是 IF;看起來像:
WHERE
CASE
WHEN (@selected_categories := :selected_categories) = '*' THEN 1
ELSE FIND_IN_SET(category_name, @selected_categories)
END

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
你可以用簡單的邏輯來解決這個(gè)問題
WHERE
(
:selected_categories = '*' OR
FIND_IN_SET(`category_name`, :selected_categories)
)
AND `product_price` BETWEEN :price_min AND :price_max
- 2 回答
- 0 關(guān)注
- 193 瀏覽
添加回答
舉報(bào)