Php 比较以逗号分隔的字符串中的数据,而不使用分解
有没有什么方法可以比较用户id是否存在于deleted_by_id中,而无需使用explode函数,直接使用elount?我使用的是laravel 4.2 btw。下面是一个示例表: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 + +-----------------------------+------------
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。如果我需要的话,也许将来我会重新调整表格。谢谢你给我重新考虑重新调整表格的选择,我知道