2

私はFIND_IN_SETを含むクエリを書いています.where条件は次のとおりです

WHERE 
    AND pmd.searchable =1
    AND FIND_IN_SET( categorie_heading,categoryheading) 
    AND FIND_IN_SET( categorie_discription,catdiscription) 
    AND FIND_IN_SET( Brand,categorybrand) 
    AND price
        BETWEEN minprice  
            AND maxprice  
GROUP BY p.prod_id;

値がcategoryheadingに設定されていない場合(値がnullまたは空の文字列の場合)、すべてのcategoryheading値が必要ですが、FIND_IN_SETはcategoryheadingで指定された値を取得するため、文字列の長さを取得することを考え、長さがゼロより大きい場合は連結します必要な場所の条件 ...

これを解決するのを手伝ってください。これを行う他の方法があれば教えてください。

4

1 に答える 1

0

この機能は必要ですか? http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

CHAR_LENGTH(文字列)

文字列 str の長さを文字数で返します。マルチバイト文字は 1 文字としてカウントされます。つまり、5 つの 2 バイト文字を含む文字列の場合、LENGTH() は 10 を返しますが、CHAR_LENGTH() は 5 を返します。

于 2013-10-01T12:38:17.280 に答える