匹配具有相同值SQL的多个列

Mud*_*san 4 sql

假设表中有像列akey1,bkey2,ckey3和许多喜欢它.
有没有办法搜索共同的价值

SELECT * FROM table WHERE %key% LIKE 'xyz'

除了使用多个AND,OR条件.如果解决方案是DBMS特定的,则无关紧要.

Joe*_*orn 10

缺少动态sql,你必须拼出每个列名.但是你可以得到一些语法快捷方式,只列出常量一次:

SELECT * FROM table WHERE 'xyz' IN (akey1, bkey2, ckey3)
Run Code Online (Sandbox Code Playgroud)

使用动态sql,您仍然必须发出相同的查询...但您至少可以使用字符串工具来构建它,如果您想使用通配符匹配,您可以在information_schema.columns视图中查找它们.但是,这涉及打开并迭代游标或将列数据返回给客户端,其中任何一项涉及的工作多于仅列出原始查询中的列名.希望您在开始向它发出查询之前至少知道您的数据库.