我确实在mytable中有像California | Washington这样的值,其中值由separator |
连接query: select state from mytable
result: California|Washington
我希望得到像
一样的每一个值加利福尼亚
华盛顿
所以我可以加入另一个包含
的表id state population
1 California 489283
2 Washington 923829
任何帮助表示赞赏!
答案 0 :(得分:1)
您不应该以这种方式存储数据。但是,如果由于遗留原因无法更改它,您仍然可以使用LIKES进行查询。
SELECT *
FROM joined_table A,
state_table S
WHERE S.state LIKE CONCAT('%|', A.state, '|%')
OR S.state LIKE CONCAT(A.state, '|%')
OR S.state LIKE CONCAT('%|', A.state)
如果始终存储分隔符所包含的数据,则条件可能更简单:
query: select state from mytable
result: |California|Washington|
然后你的查询将是:
SELECT *
FROM joined_table A,
state_table S
WHERE S.state LIKE CONCAT('%|', A.state, '|%')