gpt4 book ai didi

mysql - 如何使用 MySql 查询显示所有非空和所有非空记录而不提及 where 子句中的所有列名?

转载 作者:行者123 更新时间:2023-11-29 02:12:42 26 4
gpt4 key购买 nike

请考虑有八列(col1、col2、...col8)并且 col1 包含 primary_key。

Table1col1: val1col2: val2col3: NULLcol4: col5: NULLcol6: NULLcol7: 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 列的大表。

请帮忙。提前致谢。

最佳答案

你不能;某些地方必须形成一个查询,其中提到了所有列名。不过,如果您知道文本编辑器的强大功能可以让您的生活更轻松一些,也许会对您有所帮助。

mySQL 中的以下查询

SHOW COLUMNS FROM mydb.mytable

应该产生这样的输出:

+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | MUL | | |
| District | char(20) | NO | | | |
| Population | int(11) | NO | | 0 | |
+-------------+----------+------+-----+---------+----------------+

如果你使用一个强大的文本编辑器(这个例子是针对 sublime 的,大多数好的文本编辑器都有这个功能)它会有一个列选择模式。在 sublime 中,如果你用鼠标中键拖动选择,那么你可以突出显示只有列名的方形区域

enter image description here

将这些粘贴到其他地方,然后再次使用鼠标中键绘制一条垂直线,线末的宽度为零,然后开始键入:

enter image description here enter image description here

如您所见,sublime 正在同时输入所有行。这可以大大减少您的查询编写琐事和无聊的重复部分。了解您最喜欢的文本编辑器的高级功能。我喜欢 sublime,因为它可以使用 ctrl+click 将多个光标放置在任何地方,然后同时键入所有光标——我还没有在任何其他编辑器中发现此功能:

enter image description here

如果表变化很大,您的其他选择是用代码/使用 SQL 构建查询。可能是这样的:

SELECT 'SELECT * FROM tableWhatever WHERE '
UNION ALL
SELECT CONCAT(`COLUMN_NAME`, ' is not null and ')
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename'
UNION ALL
SELECT '1=1'

它会生成这样的 SQL(查询编辑器的网格输出中的多个单元格,然后将这些单元格复制到查询编辑器之外):

SELECT * FROM tableWhatever WHERE
ID is not null and
Name is not null and
CountryCode is not null and
District is not null and
Population is not null and
1=1

它在语法上是正确的。如果需要,您可以使用退格键删除最后一个 AND 和 1=1..

使用SQL写SQL也可以省去很多打字

关于mysql - 如何使用 MySql 查询显示所有非空和所有非空记录而不提及 where 子句中的所有列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47551729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com