私は3つのテーブルを持っています。ここで ユーザー(ID、名前) 項目(ID、名前、価格)と 注文(ID、USER_ID、ITEM_ID)mysqlのコンマ区切り値を比較するには?
は私のITEM_ID列はカンマが[1,2,3]
のような値を隔てています。 item_idが単一の値を持つ場合、私は完全に動作する以下のクエリを持っています。
select users.name,items.price
from orders
join users
on user.id = orders.user_id
join items
on items.id = orders.item_id
where orders.id = 1
カンマ区切りの値がある場合、上記のクエリと同じ結果をどのように得ることができますか?ただし、カンマ区切りで店id
が悪いDB設計の一種である
select users.name,items.price
from orders
join users
on user.id = orders.user_id
join items
on find_in_set(items.id, orders.item_id)
where orders.id = 1
は、あなたがより良い関係を格納するテーブルを追加したい:
より良いデザインをお勧めします。私はID配列全体を格納しています。 – Hitendra
より良いデザインをお寄せいただきありがとうございます。私はfind_in_setでクエリを試しましたが、何の結果も得られませんでした。私は後であなたの提案を実装するが、今私は今持っているものから結果を得たい。 – Hitendra
私のdbフィールドには値「[1,2,3]」があり、それには大括弧が両方とも入っていることに注意してください。 – Hitendra