ユーザー定義変数を利用する方法も考えられます。
DB Fiddle
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)
7VALUES
8 ( 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 @sql
16FROM 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;