【问题标题】:Retrieving table rows with matching values in a SET Field Type在 SET 字段类型中检索具有匹配值的表行
【发布时间】:2011-03-27 18:01:37
【问题描述】:

我在表中有一个字段,数据类型为“set”,因此它可以接受多个值。但是当我检索与它匹配的结果时,我被卡住了。

示例字段

"menuPosition" : set('top','left','right','bottom')

查询示例

SELECT * FROM mytable where menuPosition='top'

这个查询只返回那些只有top作为值的行,不返回像top,left这样有多个值的行。如何检索所有这些记录?

由于我上面的查询只比较一个值,如何编写一个查询来匹配多个值,例如where menuPosition='top' && 'bottom'

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以使用FIND_IN_SET 喜欢:

    SELECT * FROM mytable WHERE FIND_IN_SET('top', menuPosition)
    

    或者你可以使用LIKE:

    SELECT * FROM mytable WHERE menuPosition LIKE '%top%'
    

    我猜第一个更快。

    【讨论】:

    • 如何比较一个和多个值,例如“top”和“bottom”
    • 我刚刚添加了最后一行。使用FIND_IN_SET('top', menuPosition) AND FIND_IN_SET('bottom', menuPosition)
    猜你喜欢
    • 1970-01-01
    • 2019-11-16
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多