booleanのいずれかの項目にtrueがあるものを抽出するSQL文

sql

1CREATE TABLE hoge 2 (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,3 hoge1 BOOLEAN, hoge2 BOOLEAN, hoge3 BOOLEAN,4 hoge4 BOOLEAN, hoge5 BOOLEAN);5 6INSERT INTO hoge (hoge1, hoge2, hoge3, hoge4, hoge5)7VALUES8 ( true, false, false, false, false),9 (false, true, false, false, false),10 (false, false, false, false, false),11 (false, false, false, true, false),12 (false, false, false, false, false);13 14SET @sql = NULL;15SELECT GROUP_CONCAT(COLUMN_NAME) INTO @sql16FROM INFORMATION_SCHEMA.COLUMNS 17WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'hoge'18 AND COLUMN_TYPE = 'tinyint(1)';19 20SET @sql = CONCAT('SELECT * FROM hoge WHERE true IN (', @sql,')');21 22PREPARE stmt FROM @sql;23EXECUTE stmt;24DEALLOCATE PREPARE stmt;

コメントを投稿

0 コメント