Php 比较以逗号分隔的字符串中的数据,而不使用分解

Php 比较以逗号分隔的字符串中的数据,而不使用分解,php,laravel,eloquent,explode,Php,Laravel,Eloquent,Explode,有没有什么方法可以比较用户id是否存在于deleted_by_id中,而无需使用explode函数,直接使用elount?我使用的是laravel 4.2 btw。下面是一个示例表: messages +-----------------------------+------------------+ + id | message + deleted_by_id + +-----------------------------+------------

有没有什么方法可以比较用户id是否存在于deleted_by_id中,而无需使用explode函数,直接使用elount?我使用的是laravel 4.2 btw。下面是一个示例表:

messages    
+-----------------------------+------------------+
+ id | message                + deleted_by_id    +
+-----------------------------+------------------+
+  1 | hello                  + 65,72            +
+  2 | thank you              + 54,33,89         +
+-----------------------------+------------------+

我正在尝试比较用户id是否存在于deleted by_id中,以便消息将显示在垃圾箱视图中。

您可以使用
SELECT
语句和
LIKE
操作符作为一种方法,但随着用户id值的增加,这将产生意外的结果。另一种方法是使用
MySQL的
REGEX
特性

此外,由于您想使用Eloquent,您可以使用Regex尝试
whereRaw()
语句

Message::whereRaw("deleted_by_id REGEX 8{1}9{1}"); //find 89
这是未经测试的,您每次都必须根据您所寻找的内容更新正则表达式,但我能看到的唯一选项是雄辩

最终,最好的选择是重新考虑表结构,以便可以将每个用户id存储在自己的行中


您可以使用带有
LIKE
操作符的
SELECT
语句作为一种方法,但随着用户id值的增加,这会产生意外的结果。另一种方法是使用
MySQL的
REGEX
特性

此外,由于您想使用Eloquent,您可以使用Regex尝试
whereRaw()
语句

Message::whereRaw("deleted_by_id REGEX 8{1}9{1}"); //find 89
这是未经测试的,您每次都必须根据您所寻找的内容更新正则表达式,但我能看到的唯一选项是雄辩

最终,最好的选择是重新考虑表结构,以便可以将每个用户id存储在自己的行中


您可以使用带有
LIKE
操作符的
SELECT
语句作为一种方法,但随着用户id值的增加,这会产生意外的结果。另一种方法是使用
MySQL的
REGEX
特性

此外,由于您想使用Eloquent,您可以使用Regex尝试
whereRaw()
语句

Message::whereRaw("deleted_by_id REGEX 8{1}9{1}"); //find 89
这是未经测试的,您每次都必须根据您所寻找的内容更新正则表达式,但我能看到的唯一选项是雄辩

最终,最好的选择是重新考虑表结构,以便可以将每个用户id存储在自己的行中


您可以使用带有
LIKE
操作符的
SELECT
语句作为一种方法,但随着用户id值的增加,这会产生意外的结果。另一种方法是使用
MySQL的
REGEX
特性

此外,由于您想使用Eloquent,您可以使用Regex尝试
whereRaw()
语句

Message::whereRaw("deleted_by_id REGEX 8{1}9{1}"); //find 89
这是未经测试的,您每次都必须根据您所寻找的内容更新正则表达式,但我能看到的唯一选项是雄辩

最终,最好的选择是重新考虑表结构,以便可以将每个用户id存储在自己的行中


没有
正则表达式
,但是
在集合中查找
(我猜是MySQL):


显然,建议-规范db;)

没有
正则表达式
,但是
在集合中查找
(我猜它是MySQL):


显然,建议-规范db;)

没有
正则表达式
,但是
在集合中查找
(我猜它是MySQL):


显然,建议-规范db;)

没有
正则表达式
,但是
在集合中查找
(我猜它是MySQL):


显然,建议-规范db;)

多谢各位。我同意你的看法,随着我的用户id值的增长,使用LIKE会有问题。我还没有尝试过Regex,但我正在寻找是否可以直接使用eloquent或eloquent和Regex的组合。更新了我的答案,提供了另一种选择,但如果你问mesorry,我仍然远远不是很好,我似乎无法使用wherRaw或我只是不知道如何使用wherRaw。如果我需要的话,也许将来我会重新调整表格。谢谢你给我重新考虑重新调整表格的选择,我认为这将是解决我问题的好办法。谢谢。我同意你的看法,随着我的用户id值的增长,使用LIKE会有问题。我还没有尝试过Regex,但我正在寻找是否可以直接使用eloquent或eloquent和Regex的组合。更新了我的答案,提供了另一种选择,但如果你问mesorry,我仍然远远不是很好,我似乎无法使用wherRaw或我只是不知道如何使用wherRaw。如果我需要的话,也许将来我会重新调整表格。谢谢你给我重新考虑重新调整表格的选择,我认为这将是解决我问题的好办法。谢谢。我同意你的看法,随着我的用户id值的增长,使用LIKE会有问题。我还没有尝试过Regex,但我正在寻找是否可以直接使用eloquent或eloquent和Regex的组合。更新了我的答案,提供了另一种选择,但如果你问mesorry,我仍然远远不是很好,我似乎无法使用wherRaw或我只是不知道如何使用wherRaw。如果我需要的话,也许将来我会重新调整表格。谢谢你给我重新考虑重新调整表格的选择,我认为这将是解决我问题的好办法。谢谢。我同意你的看法,随着我的用户id值的增长,使用LIKE会有问题。我还没有尝试过Regex,但我正在寻找是否可以直接使用eloquent或eloquent和Regex的组合。更新了我的答案,提供了另一种选择,但如果你问mesorry,我仍然远远不是很好,我似乎无法使用wherRaw或我只是不知道如何使用wherRaw。如果我需要的话,也许将来我会重新调整表格。谢谢你给我重新考虑重新调整表格的选择,我知道