根据输入或不输入的信息对MYSQL中的多个文本字段进行排序

我有一个专家表,其中包含expert_descriptioncompany_descriptionexpert_websiteexpert_emailcompany_website等字段。

这些字段不是必需的,所以它们可能是NULL

在搜索表格时,首先应该有大多数非NULL字段的条目。

例如,有四个用户:

  • user1:谁输入了所有5个字段的信息
  • user2:只输入了1个字段的信息
  • user3:谁只输入了4个字段的信息
  • user4:只输入了3个字段的信息
  • 结果应该是

  • USER1
  • 用户3
  • USER4
  • 用户2

  • 我建议你在用户表中创建一个字段,用于存储填充字段的数量。

    每当用户添加/删除字段时,都应更新此列。

    然后你可以通过“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

    链接地址: http://www.djcxy.com/p/95053.html

    上一篇: Sort multiple text fields in MYSQL according to information entered or not

    下一篇: Rails MySQL query using where statement