【问题标题】:How make MySQL query for text split by ,如何使 MySQL 查询文本拆分为 ,
【发布时间】:2016-12-01 11:11:38
【问题描述】:

我有 mysql 数据库。行的样子

name | name | groups | name
==============================
item | item | 1,3,5  | item

我需要查询:

选择所有具有 group = 3 的行。我怎么做这个?有没有简单的查询字符串

非常感谢!

【问题讨论】:

  • 您的表格设计不好,这就是您遇到此问题的原因。因此,您别无选择,只能创建一个过程(或 PHP 脚本)来获取每一行、拆分字符串、检查值并在您要查找的组在其中时返回它。
  • 好的,我明白了,我需要创建下一个表名'groups_assocc',并在两个表(行/id´s)之间建立连接。谢谢!

标签: php mysql select separator


【解决方案1】:

没有什么比规范化你的表格更好的了,但如果你仍然需要这样做,这是一种方法,

试试where这样的子句

 $group = 3;
 where groups IN("$group",",$group","$group,",",$group,")

【讨论】:

    【解决方案2】:

    你可以试试这个

    $search = 1;// or whatever you want to search
        select * from table_name where groups like '%,$search,%' or groups like '$search,%'  or groups like '%,$search' 
    

    或者你可以试试这个简单的

    select * from table_name where find_in_set('3',groups ) <> 0
    

    有关find_in_set的更多信息,请阅读http://www.w3resource.com/mysql/string-functions/mysql-find_in_set-function.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多