如果没有经过爆炸功能并且只是直接使用eloquent,如果在deleted_by_id中存在用户ID,我有什么办法可以比较吗?我正在使用laravel 4.2顺便说一句。下面是一个示例表:
messages
+-----------------------------+------------------+
+ id | message + deleted_by_id +
+-----------------------------+------------------+
+ 1 | hello + 65,72 +
+ 2 | thank you + 54,33,89 +
+-----------------------------+------------------+
我正在尝试比较在deleted_by_id中是否存在用户ID,因此该消息将显示在垃圾视图中。
答案 0 :(得分:1)
您可以将SELECT
语句与LIKE
运算符一起用作一种方法,但随着用户ID值的增加,这会产生意外结果。另一种方法是使用REGEX
MySQL
功能
要添加到此,因为您想要使用Eloquent,您可以尝试使用Regex的whereRaw()
语句...
Message::whereRaw("deleted_by_id REGEX 8{1}9{1}"); //find 89
这是未经测试的,您每次都必须根据您要查找的内容更新正则表达式,但我只能看到Eloquent的选项。
最终,您最好的选择是重新考虑您的表结构,以便您可以将每个用户ID存储在自己的行中。
答案 1 :(得分:1)
没有func allItems() -> [TodoItem] {
var todoDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey(ITEMS_KEY) ?? [:]
let items = Array(todoDictionary.values)
return items.map({TodoItem(deadline: $0["deadline"] as! NSDate, title: $0["title"] as! String, UUID: $0["UUID"] as! String!)}).sorted({(left: TodoItem, right:TodoItem) -> Bool in
(left.deadline.compare(right.deadline) == .OrderedAscending)
})
}
或like
,但regex
(我猜它 MySQL ):
find_in_set
显然建议 - 规范化db;)