我有一个名为'items'的表。 它有包括索引列的列,如下所示。
{% capture new_url %}/{{element.name}}.html{% endcapture %}
<li {% if page.url == new_url %} class="active"{% endif %}>
当我使用以下声明时
title | name | areacode
---------------------------------
police | user1 | 31,31,31
FireStation | user2 | 31,1,2
Restaurant | user22 | 1,1,0,32,32
---------------------------------
我得到(警察,用户1)和(FireStation,用户2) 但是,当我使用IN(1) 我无法获得(FireStation,user2)
我发现当多个值如
时,IN子句很有用 select title, name from items where IN(31)
被使用。
但是当单个值如IN(1)或IN(0)时,它有时无法正确获取数据。我找到了CONTAINS方法。但不熟悉它。
总之,如果areacode包含值'1',我该如何获取(FireStation,user2)?或者(餐厅,用户22)当areacode的值为'0'时?
答案 0 :(得分:1)
您可能不应该将区域代码数据存储为CSV,因为它是非标准化的,因此很难处理。话虽这么说,MySQL有一个名为FIND_IN_SET()
的函数,可以检查给定值是否出现在CSV字符串中。这样的事情应该有效:
SELECT title, name
FROM items
WHERE FIND_IN_SET('0', areacode) > 0
如果您想检查0
或1
区号,可以使用此WHERE
子句:
WHERE FIND_IN_SET('0', areacode) > 0 OR FIND_IN_SET('1', areacode) > 0