格納された値がシリアル化された配列か単純な整数かどうかわからない状況がある場合、正しい条件を適用する前にチェックする方法がありますか?私は例をあげる:MySQLの動的条件は列の値で指定しますか?
SELECT * FROM table WHERE prefs NOT LIKE ":value;" OR prefs != "value"
最初の条件ルールアウトシリアライズさ:
user_id | prefs
----------------
1 | 1
2 | {serialized_php_array}
は今、私は具体的な値はので、私のようなので、何かをする必要がありprefs
ではありませんどこをチェックしたいです配列の値を返し、第2の条件は単純な整数を除外します。
問題は同じ条件では共存できないため、値がシリアライズされてから"NOT LIKE :value;"
の条件が満たされた場合にMySQLに問い合わせる必要があるということです。それを達成する方法はありますか?
P.S - 英語は母国語ではないので、私は自分自身を明確にしたいと思う。
あなたの現在の方法のようになるはずです'prefs'カラムのシリアル化されたデータは良いものではありませんが、現在のクエリは実際に動作するはずです。サンプルデータと期待される出力を表示できますか? –
あなたは 'OR'ではなく' AND'を使うべきです。 – Barmar
IN句を使って試してみましたか? –