请考虑有八列(col1,col2,... col8),col1包含primary_key .
Table1
col1: val1
col2: val2
col3: NULL
col4:
col5: NULL
col6: NULL
col7:
col8: val8
尝试:
Select * from Table1
WHERE col1 and col2 and col3 and col4 and col5 and col6 and col7 and col8 IS NOT NULL \G
预期:
但是我不想在where子句中提到所有这些列名,因为我正在处理一个包含100列的大表 .
请帮忙 . 提前致谢 .
1 回答
你不能;某些东西,某处必须形成一个查询,其中提到了所有列名 . 也许你会知道,使用文本编辑器功能特性可以让你的生活更轻松 .
mySQL中的以下查询
应该产生这样的输出:
如果您使用电源文本编辑器(此示例用于升级,大多数优秀的文本编辑器具有此功能),它将具有列选择模式 . 在sublime中,如果使用鼠标中键拖动选区,则可以突出显示仅列名称的方形区域
取下这些并将它们粘贴到其他地方,然后再次使用鼠标中键绘制一条垂直线,在行的末尾为零,然后开始输入:
如您所见,sublime同时在所有行上键入 . 这可以大大减少您的查询编写家务和无聊的重复部分 . 阅读您最喜欢的文本编辑器的高级功能 . 我喜欢崇高,因为它可以通过ctrl单击放置多个游标,然后同时键入所有 - 我没有在任何其他编辑器中找到此功能:
如果表变化很大,那么您的其他选项是使用SQL在代码/中构建查询 . 也许是这样的事情:
它会产生这样的SQL(查询编辑器的网格输出中的多个单元格,然后将单元格复制出查询编辑器):
它在语法上是正确的 . 如果需要,可以使用退格键删除最后一个AND和1 = 1 .
使用SQL编写SQL也可以为您节省大量的输入 .