根据输入或不输入的信息对MYSQL中的多个文本字段进行排序
我有一个专家表,其中包含expert_description
, company_description
, expert_website
, expert_email
, company_website
等字段。
这些字段不是必需的,所以它们可能是NULL
。
在搜索表格时,首先应该有大多数非NULL
字段的条目。
例如,有四个用户:
结果应该是
我建议你在用户表中创建一个字段,用于存储填充字段的数量。
每当用户添加/删除字段时,都应更新此列。
然后你可以通过“fieldcount”列进行排序。
使用这个查询:
SELECT user FROM your_table
ORDER BY expert_description DESC, company_description DESC,
expert_website DESC, expert_email DESC, company_website DESC;
谢谢。
如果空字段的值为NULL,则可以使用类似这样的内容。
SELECT expert_description, company_description, expert_website, expert_email, company_website,
((expert_description IS NULL) + (company_description IS NULL) + (expert_website IS NULL) + (expert_email IS NULL) + (company_website IS NULL)) AS empty_count
FROM experts
WHERE 1
ORDER BY empty_count;
IS NULL将返回1
,如果该字段的值为NULL
否则将返回0
。
上一篇: Sort multiple text fields in MYSQL according to information entered or not