ホームページ > バックエンド開発 > PHPチュートリアル > データ セット内に最大 2 つのデータを含むレコードの数を見つけます。ありがとうございます

データ セット内に最大 2 つのデータを含むレコードの数を見つけます。ありがとうございます

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:29:46
オリジナル
848 人が閲覧しました

一連のデータの中に最大 2 つのデータが含まれるレコードの数を求めます。 ありがとうございます
元のデータベース テーブルには次のような情報が格納されています
l1、l2、を選択することで取得できます。テーブルの l3、l4、l5 以下のデータ

1 2 3 4 5
1 3 8 14 16
16 18 22 24 26
15 14 23 28 30
26 28 30 31 33

次に、これら 5 つのレコードから次の制限に従って出力したいとします。つまり、 $arr=array (1,8,14,20,22,24,26,29, 30, 31,32,33), $arr で出力を見つけます。 最大 2 つの数字を持つレコードは何ですか? もちろん、上記で取得したレコードから選択できます。select の where 条件で制限できると良いでしょう。 。前もって感謝します! ~~~

-----解決策---------------------------- -
真ん中の from の後 Union all の文字列をテーブルに置き換えます

SQL コード

SELECT * FROM(SELECT *,(if(find_in_set(a, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set( b, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set(c, '1,8,14,20,22) ,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set(d, '1,8,14,20,22,24,26,29,30,31,32 ,33'), 1, 0) + if(find_in_set(e, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) ) cnt FROM (SELECT 1 a、2 b、3 c、4 d、5 e すべてを結合
SELECT 1、3、8、14、16 すべてを結合
SELECT 16、18、22、24、26 すべてを結合
SELECT 15、14、23、28、30 すべてを結合
SELECT 26、28、30、31、33) t) s WHERE cnt<font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
PHP コード
mysql_connect();
mysql_select_db('テスト');
mysql_query('DROP TABLE IF EXISTS tset');
mysql_query('
存在しない場合にテーブルを作成するテスト (
  id int(11) NOT NULL AUTO_INCREMENT、
  l1 varchar(2) NULL、
  l2 varchar(2) NULL、
  l3 varchar(2) NULL、
  l4 varchar(2) NULL、
  l5 varchar(2) NULL、
  主キー (`id`)
) エンジン=マイサム
');
mysql_query('TRUNCATE TABLE テスト');
mysql_query("テスト (l1、l2、l3、l4、l5) 値に挿入
('1'、'2'、'3'、'4'、'5')、
('1'、'3'、'8'、'14'、'16')、
('16'、'18'、'22'、'24'、'26')、
('15'、'16'、'23'、'28'、'3')、
('26'、'28'、'30'、'31'、'33')
");

$arr = 配列(1,8,14,20,21,24,26,29,30,31,32,33);
$s = "select '" .join("' as ch Union all select '", $arr) ;

$sql = "cnt、a.* として count(*) を選択
  (テストから p として id, concat(l1,',',l2,',',l3,',',l4,',',l5) を選択)
  左結合
  ($s) b
  find_in_set(b.ch, a.p) では a.id HAVING cnt
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート