显示字段但包含内容

时间:2016-03-09 19:33:50

标签: mysql

我正在尝试在组合框中显示字段名称,但我只需要那些非空或有空格的字符。

我已经准备好了这个查询的字段名称:

SHOW FIELDS FROM model WHERE type LIKE 'varchar(15)'

关于我该怎么办?

更新: 我正在使用一个设计很差的旧数据库。我附上了一张图片:Database Screenshot这是一个轮胎尺寸数据库,因此我需要按照捕获尺寸的模型获取年份,以便在组合框中显示它们。

1 个答案:

答案 0 :(得分:0)

您可以使用当前查询来获取“候选”字段,但是(缺少一些非常复杂的动态SQL)您需要构建一个单独的查询来确定哪些候选项是相关的。通常,类似于:

SELECT SUM(IF(field1 REGEXP '[a-zA-Z0-9.]+', 1, 0) > 0 AS showField1
, SUM(IF(field2 REGEXP '[a-zA-Z0-9.]+', 1, 0) > 0 AS showField2
, ...
FROM theTable
;

根据您认为“有值”的内容,可能需要调整正则表达式字符串;在此处了解详情:http://dev.mysql.com/doc/refman/5.7/en/regexp.html

如果表格很大(大量行),你可能最好分别查询每个字段(上面的那个将查看整个表,没有某种WHERE来减少检查的行):

SELECT 1 FROM theTable WHERE fieldX REGEXP '[a-zA-Z0-9.]+' LIMIT 1;

将查询结果视为“是”,结果为“无内容”。