Php 如何按列“;票号”;在拉维尔

Php 如何按列“;票号”;在拉维尔,php,laravel,Php,Laravel,我已经在我的laravel应用程序中创建了数据库通知, 但如何从中删除行 表格:通知 id |类型|应报告| id |应报告|类型|数据|读取|创建|更新| id = 6f4ec6c2-ac98-4c35-99fe-2eb0559b2aed type = App\Notifications\NewTicket notifiable_id= 3 notifiable_type= App\User data = {"user_name":"admin","ticket_title":"How

我已经在我的laravel应用程序中创建了数据库通知, 但如何从中删除行

表格:通知

id |类型|应报告| id |应报告|类型|数据|读取|创建|更新|

id = 6f4ec6c2-ac98-4c35-99fe-2eb0559b2aed
type = App\Notifications\NewTicket

notifiable_id= 3 

notifiable_type= App\User

data = {"user_name":"admin","ticket_title":"How to ...","ticket_id":7}

read_at = NULL

created_at = 2019-04-20 

updated_at = 2019-04-20
我试着

DB::table('notifications')

   ->where('data->ticket_id',$id)->get()->first()->delete();
不删除

然后试试看

 DB::table('notifications')    
 ->whereRaw("JSON_EXTRACT(`data`, '$.ticket_id') = ?", $id)->get()->first()->delete();
不删除

如何按票证id删除上述行


任何帮助都将不胜感激。

您可以按如下方式删除该行

DB::table('notifications')->where('id', $id)->delete();

请尝试以下方法以按json字段删除:

    DB::table('notifications')
      ->where('data->ticket_id', $id)->delete();
用这个

->whereJsonContains('data', ['ticket_id' => $id])->first()->delete();

DB::table('notifications')->where('ticket_id',$id)->delete();谢谢你,但没用:(我需要按列中的票证id删除。)Data@HimaHima哪一个是主键id还是应通知的id?通知表中的id与票证id不同,通知表:id | type |应通知的id |应通知的类型| data | read | at | created | at | updated | atas我可以在您的表结构中看到没有名为票证的列_谢谢你,但不工作,不给我任何错误只是不要delete@HimaHima;对于删除,您可以尝试以下技巧:
->whereJsonContains('data',['ticket\u id'=>'id'])->first()->delete();
谢谢,但不起作用,也不会给我任何错误只需不删除->whereJsonContains('data',['ticket\u id'=>'id'])->get()->first()->delete();@HimaHima;不要使用get()是的,我使用了你的查询,但不起作用,我了解你,我知道我应用程序中的问题,你的查询非常好,我的应用程序有problem@HimaHima我有相同的数据库结构,我尝试了这个查询,它工作得很好,如果有帮助,请将它标记为已接受,以便其他读者可以获得帮助。谢谢