2016-09-01 5 views
-1

迅速なサポートが高く評価されます。私は、mysqlのテーブル行をmob_categoriesという名前にしました。データは現在 '|'として保存されています。たとえば、値がcat 1の場合は、別の列から値を選択する必要があります(cat 1|cat 2|cat 3など)。入力値が一致する場合は、同じテーブルの別の列の値を取得する必要があります。MYSQLテキストを使用してINクエリを選択してください。

それは猫1 '

と一致どこdeveice_tokenと命名された私は、このコードを試してみましたが、その何とか動作していない

SELECT * from table_name where find_in_set('cat 1',mob_categories) <> 0 

ので、私は次のコードでビットを変更しますが、もし数値のみで動作します値はこの形式でこの形式で終了します(つまり)1,2,3

$userNotification = $wpdb->get_results("SELECT * from table_name where 1 IN (mob_categories); "); 

具体的には何が欠けていますか?

+1

列に複数の値を持たないように、スキーマを正規化する必要があります。 – Barmar

答えて

1

mob_categoriesのデータは、コンマ(,)ではなく、|で区切られているため、最初にFIND_IN_SETと互換性があるようにする必要があります。

|をカンマ(,)で最初に置き換えてください。

SELECT * from table_name where find_in_set('cat 1', REPLACE(mob_categories,'|',',')) > 0 
+0

本当ですか?良いアイデアはありませんか? – Strawberry

+0

問題がそのまま残っている場合は、これよりも「MySQL」側で解決するためのアイデアはありません。より良いアイデアを思いついたら、共有してください。楽しみにしてます。 @Strawberry – 1000111

+0

場合によっては、質問の前提を拒否し、問題を再定義する必要があります。 – Strawberry

関連する問題