【问题标题】:MySQL: How to check for a specific value in a varbinary type?MySQL:如何检查 varbinary 类型中的特定值?
【发布时间】:2012-10-30 17:39:50
【问题描述】:

我正在处理一个表,该表有一个名为 other_group_ids 的字段,其类型为 varbinary(255)。它的一个示例值是:3,7,14。我有一个查询来检查用户是否在某个组中。例如,要检查他们是否在第 4 组中,我对其进行 LIKE:

SELECT user.* FROM users AS user WHERE user.other_group_ids LIKE '%4%';

这很好用,但问题是它也在 14 上流行。如何更改我的查询以使其只匹配 4,而不是其他值,如 14 或 41?

非常感谢您的任何见解!

【问题讨论】:

    标签: mysql varbinary sql-like


    【解决方案1】:

    要回答您的问题,您可以执行以下操作:

    SELECT user.* FROM users AS user 
    WHERE user.other_group_ids LIKE '%,4,%' OR
        user.other_group_ids LIKE '4,%' OR
        user.other_group_ids LIKE '%,4'
    

    请注意,具有多个值的列未标准化,如果可能,您应该尝试解决此问题。要进行规范化,请创建一个名为 user_group 的表,其中包含 usergroup。主键将是(user, group) 并将充当参考表。然后您可以简单地查询组 4 中的用户。

    【讨论】:

    • 1,44,8 的值呢?
    • 太棒了!非常感谢,njk 和 G-Nugget =)
    猜你喜欢
    • 2010-09-17
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2022-07-08
    • 2020-03-12
    相关资源
    最近更新 更多