我正在尝试在组合框中显示字段名称,但我只需要那些非空或有空格的字符。
我已经准备好了这个查询的字段名称:
SHOW FIELDS FROM model WHERE type LIKE 'varchar(15)'
关于我该怎么办?
更新: 我正在使用一个设计很差的旧数据库。我附上了一张图片:Database Screenshot这是一个轮胎尺寸数据库,因此我需要按照捕获尺寸的模型获取年份,以便在组合框中显示它们。
答案 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;
将查询结果视为“是”,结果为“无内容”。