IN(1,2,3)を使用して、値が1,2,3のいずれかのSQLデータベースから項目を選択できますが、文字列であるMYSQLに値がある場合はどうなりますか'1,2,3'と等しく、その値を選択したいと思います。私の知る限りでは、私はこれをしなければならない:私は逆に、ソートの「IN」とシミュレートしたい場合は結構ですSQLでCSVを保存して検索する方法は?
SELECT whatever FROM wherever WHERE sqlvariable = '1' OR sqlvariable LIKE '1,%' OR `sqlvariable` LIKE '%,1,%' OR `sqlvariable` LIKE '%,1'
を。
がSELECT whatever FROM wherever WHERE sqlvariable = '1' OR sqlvariable LIKE '1,%' OR `sqlvariable` LIKE '%,1,%' OR `sqlvariable` LIKE '%,1' OR sqlvariable = '2' OR sqlvariable LIKE '2,%' OR `sqlvariable` LIKE '%,2,%' OR `sqlvariable` LIKE '%,2'
今、私は上記のクエリを生成するためにPHPを使用して言うことができますし、私はどこsqlvariable見つけるために探しています:しかし、私はこれをしなければならない、私は、それが含まれている1または2のいずれかどこsqlvariable選択したいとしましょう1 2 4 66 34 33 22 44または992が含まれています。このクエリが実行されるまでにはかなりの時間がかかります。
私はビット単位の実装を行うことができましたが、私は約60種類の項目しか持たないため、十分ではありません。
上記のようなCSVクエリをsqlで高速に利用する方法はありますか?私はそれがIN()のようなものだと思いますが、その逆です。
私は確かにあなたが実際にCSVを格納していない願っていますあなたの既存の設計は、次のようになりますあなたのSQLデータベースの文字列!もしあなたがいれば、あなたの上司またはDBAに少しスマートになるように説得し、* CSVファイルを*保管して*保管することを願っています。 – paulsm4
私は上司を持っていません、私は卿を勉強しようとしているカナダ人です:Pあなたのコメントをありがとう、私は確かにデータベースに配列を格納するより良いアプローチを学ぼうとしています。私は、例えば、vBulletinフォーラムが文字列CSVとして許可グループ情報を格納していることを知っています。たとえば、vbulletinフォーラムの権限変数は、それぞれの番号が異なる権限グループを表す '1,2,3'のように見えます。どのようにしてよりうまくいくのでしょうか? – Macmee