JSON 形式の複数の ID を選択するにはどうすればよいですか?
$query = 'SELECT * FROM articles as a WHERE "10" IN (a.catids)';
The value of a.catids in the db-field is {"0":"10","1":"12"};
何かのようなもの:
$query = 'SELECT * FROM articles as a WHERE a.catids like '%:"10",%';
: と を含めたので、インデックスではなく値を選択していることは確かです
これを行う「適切な」方法はありません。MySQL は JSON が何であるかを認識していません。ID をテキスト検索しても、非常に遅いことがわかります。
テーブルを正規化することをお勧めします。スクリプトを更新catids
して、別のテーブルに配置するだけです。
あなたはLIKEを探していると思います。
SELECT * FROM articles as a WHERE a.catids LIKE '%10%'
LIKE の構文も調べる必要があります (`%"_":"10"%' を検索して、2 番目の部分だけを検索し、さらに複雑なものを検索できるためです。
ただし、IDをそのように保存しないことをお勧めします。