【问题标题】:How to search LIKE string value in multiple columns?如何在多列中搜索 LIKE 字符串值?
【发布时间】:2021-11-19 02:55:08
【问题描述】:

我已经阅读了多种解决方案来确定一个值是否在多列中,但我想查看(字符串)值是否类似于一列或多列中的值。

所以基本上说我可以在一个优雅的语句中对多个列执行 LIKE OR 吗?

更好的方法:

    SELECT * FROM table WHERE col0 LIKE '%value%' OR col1 LIKE '%value%' OR col2 LIKE '%value%' OR ...;

剩下的 10 列左右。

韩国

【问题讨论】:

  • 这能回答你的问题吗? Mysql - how to use like on multiple columns
  • 谢谢@ErgestBasha,我想这可能有效。会尽快尝试!
  • @ErgestBasha:我试过了,但没有返回任何值。如果我只是在我知道应该找到结果的一列上使用 like ,它会毫无问题地找到它。但不是使用 concat 选项。
  • 您能否编辑您的问题并添加一些带有表格描述和预期结果的数据,db-fiddle 会很棒:db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/63
  • 这是一个非常简单的表格,有 10 列。第一个是 ID,其余的是 string(50) 字段。 (数据是从一个脏源中注入的,并且我会定期尝试清理该表以在另一个表中插入干净的数据。)我找到了一个可行的解决方案,但需要我创建带有一点点的 sql 语句蟒蛇代码。这正是我想要的,但我想有一个更优雅的解决方案。

标签: mysql multiple-columns sql-like


【解决方案1】:

这个(python)位给了我想要的结果。

    columns = ["col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8"]
    sql = "SELECT * FROM table WHERE col0 LIKE '%"+_name+"%'"
    for column in columns:
        sql += "OR "+column+" LIKE '%"+_name+"%s'"
    sql += ";"

一定有更好的方法,但目前可行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2021-09-05
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多