【问题标题】:Hibernate - Search text in all columns of tableHibernate - 在表格的所有列中搜索文本
【发布时间】:2019-10-01 16:56:19
【问题描述】:

假设我们有这张桌子:

id | name | note |
------------------
1  | bb   | abc  |
2  | bc   | bcd  |
3  | ac   | cde  |

我想在表格的任何列中获取所有包含a 的行。

结果应该是1 - bb - abc3 - ac - cde

如何使用 Hibernate 或 SQL 完成此操作? (我更喜欢这样做而不提及列名)

【问题讨论】:

    标签: mysql sql hibernate


    【解决方案1】:

    在 SQL 中,您只需使用LIKE %..% 匹配所有具有OR 条件的列:

    SELECT * FROM your_table_name 
    WHERE name LIKE '%a%' 
          OR note LIKE '%a%'
    

    【讨论】:

    • 不提列就没有办法了吗?
    • @KunLun 不,除非你准备一个动态 SQL,但这会更麻烦,而且在一天结束时,它还会准备一个包含所有列名的 SQL 字符串(动态)
    • @KunLun 这个搜索活动是一次性的吗?如果是,则 PHPMyAdmin 提供对所有列的搜索,而无需明确指定它们。 PHPMyAdmin 在内部使用INFORMATION_SCHEMA 获取所有列的名称,然后准备动态查询
    • "Is this searching activity a one time thing" 是什么意思?
    • @KunLun 我的意思是如果您只需要执行一次此查询(通常是为了查找一些数据或修复一些数据等),那么您可以在 PHPMyAdmin 中执行此操作,而无需指定所有单独的列名
    猜你喜欢
    • 2015-03-11
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多