私はこのコンテキストを持っています:
CREATE TABLE `atdees` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`params` text NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `atdees` (`id`, `params`) VALUES
(1,'{"field282":"0","field347":"1"}'),
(2,'{"field282":"0","field347":"0"}'),
(3,'{"field282":"0"}');
テーブルから次の行を抽出する必要があります。
- atdee には文字列 '"field282":"0"' が必要です
- atdee には文字列 '"field282":"0"' がありますが、文字列 '"field347":"0"' はありません
- atdee には文字列 '"field282":"0"' と '"field347":"0"' の両方があります
つまり、ID 2 と 3 を抽出する必要があります。
ありがとうございました。
Ps: 私の英語で申し訳ありませんが、私はネイティブ スピーカーではありません ;)
編集:まあ、クエリを見つけました
SELECT id
FROM atdees
WHERE
INSTR(`params`, '"field282":"0"') > 0 and
( params LIKE '%"field347":"0"%' OR
INSTR(`params`, '"field347"') = 0 )