SQL クエリに関する質問
テーブル構造
id name nasid
1 nas1 1,2,3
2 nas2 2,3,4
3 nas3 2,3,5
現在 2 つの nasid があります: 1、2
上記の 3 つのデータのうち、nasid に 1、2 (少なくとも 1 つの数値が含まれる) を含むすべてのデータをクエリしたいと思います
この SQL の使い方については、専門家のアイデアを教えてください。 などを試してみましたが、効率が低すぎました
-----解決策------ -------- -----
select * from table where find_in_set('1',nasid) または find_in_set('2',nasid)
------解決策----------------------
フルテーブルスキャン、効率はこれ以上高くありません
------解決策------------------
正規表現を使用して検索します。 。
SELECT * FROM `2012` WHERE `2012` REGEXP '(1|2)+'
テストしたところです。システム テスト データベースにアクセスして実行できます。見てみる
------解決策---------
単純なものは問題ありませんが、複雑なものほど A少しではかなり効果がありません。もちろん、現在の関数がある場合は、既成の関数を使用する必要があります。
amani11 さんへ: フル テーブル スキャンの問題について話しましたが、どうやって実行しますか?