在sql中的数组中按值获取行

时间:2018-01-23 17:42:37

标签: php mysql sql symfony doctrine

我有一个关于在MySQL中搜索的问题。我很长时间都找不到答案。

我使用symfony 3.1,我有下一个情况: 我在sql中有列site_languages(longtext,(DC2Type:simple_array)),其值为(例如)" 0,1,7"," 11,15,27"等

所以我的问题是:  我如何选择site_languages行,其中包括一个搜索值?

我尝试使用LIKE,检查了REGEXP,但是例如,如果我需要按值搜索" 1"它也将返回11/51/111等行。我正在考虑保留像" [1],[15]"但我认为存在更容易和正确的解决方案吗?

2 个答案:

答案 0 :(得分:0)

您应该考虑规范化您的数据库表,但如果您坚持以这种方式保留它,您可以将其保存为json然后检索所有行并迭代(坏主意)但如果它是短表则可以。

答案 1 :(得分:0)

如果您想通过使用正则表达式来解决此问题,可以使用此正则表达式(^|,)1(,|$)来匹配前面有逗号并且后跟逗号的1或者1可以在开头之前线的或线的末端。