2016-11-23 3 views
0

私は文字列@ x = '2,12,13,1'を持っているので、文字列@xに2が存在するかどうかを調べる必要があります。私は以下のように長さ関数の使用を試みました。pjhpのin_arrayに似たmysql検索文字列

@st=2; 
if((LENGTH(@x) - LENGTH(REPLACE(@x, @st, '')))/LENGTH(@st)=1) 
    return 1; 
else return 0; 

1を返した場合、文字列は存在しますが、期待どおりに機能していません。 pls私に知らせる彼らの他の方法は、この機能を実装しています。おかげさまで

+0

http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really-that-bad/3653574 – e4c5

+0

LOCATEを使用できますか? http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate – phobia82

答えて

0

FIND_IN_SET関数を使用できます。

FIND_IN_SET(@ st、@ x);この関数は、針ストリングの位置を返します。それが> 0の場合、文字列は存在しません。