私はDBに配列JSONストリングでパーミッションを保存しています。この時点で私はこのようにそれらを選択しています:regexp(json string)で特定の値を使用してmysqlからローを取得
1 | Dog | [3,4]
2 | Cat | [33,4]
3 | Tiger | [5,33,4]
4 | wolf | [3,5]
SELECT * FROM `pages` WHERE access REGEXP '([^"])3([^"])'
それが動作するはずのように、それは動作しますが、ありません。このクエリは私に3を含むすべてのレコードを与えますが、それは33を含んでいます。私の質問はどのようにjsonの文字列に特定の値で行を取得するために私の正規表現をフォーマットする必要があります。
psの私が持っているmysqlの5.5ので、私はあなただけのフィールドに数字を持っている場合のみ、文字列は、あなたが探している値を取るために、あなたは正規表現を変更することができ
[mysqlのjsonエンコード配列に値が存在するかどうかをチェックする](http://stackoverflow.com/questions/41132714/check-if-a-value-exists-in-json-encode-array- – e4c5
@ e4c5私は5.5のmysqlバージョン – Dest
を持っていますが、oyuがmysql 5.5上にある場合はJSONを使用してはいけないと言うように、この問題は多種多様です。このデザインをアップグレードするか、削除してください。 'データベースの正規化'を読む – e4c5