私はこのようなMySQL(5.7)テーブルを持っています。私はすべてのCOLB、COLCを、検索したいMySQL:1つのステートメントで複数の列を検索
+--------+--------------+--------+-------+----------+--------+
| Field | Type | Null | Key | Default | Extra |
|--------+--------------+--------+-------+----------+--------|
| colA | varchar(50) | NO | PRI | <null> | |
| colB | int(11) | YES | | <null> | |
| colC | int(11) | YES | | <null> | |
| colD | int(11) | YES | | <null> | |
| colE | int(11) | YES | | <null> | |
| colF | int(11) | YES | | <null> | |
| colG | int(11) | YES | | <null> | |
| colH | int(11) | YES | | <null> | |
| colI | int(11) | YES | | <null> | |
| colJ | int(11) | YES | | <null> | |
| colK | int(11) | YES | | <null> | |
| colL | int(11) | YES | | <null> | |
| colM | int(11) | YES | | <null> | |
...、コルムのmod 100は、私がこれでこれを行うことができます知っている1または2です。
SELECT * FROM MYTABLE WHERE
(mod(colB, 100) = 1 OR mod(colB, 100) = 2) AND
(mod(colC, 100) = 1 OR mod(colC, 100) = 2) AND
(mod(colD, 100) = 1 OR mod(colD, 100) = 2) AND
:
(mod(colM, 100) = 1 OR mod(colM, 100) = 2)
このSQLは非常に長く、非効率的です。これをもっとスマートにすることはできますか?
なぜ最初に多くの列がありますか? –