php - 从 laravel/php 中的 mysql 列数组值中查找单个值
问题描述
我想从带有逗号分隔字段的数组中找出值。这是我的表结构
╔════╦══════════════╗ ║ id ║ columnA ║ ╠════╬══════════════╣ ║ 1 ║ [1,2,3,4,5] ║ ║ 2 ║ [6,2,4,5,8] ║ ╚════╩══════════════╝
如果我提供“1”并且 columnA 与该数组中的 1 值匹配,则获取该行。
<?php
return $val = Model::where(1 exists in ColumnA then fetch this row)->first/get();
?>
解决方案
正如上面评论中提到的,这不是解决这个问题的方法。您需要两个表来以适当的方式管理它。
PARENT:
╔════╗
║ id ║
╠════╣
║ 1 ║
║ 2 ║
╚════╝
CHILD:
╔════╦══════════════╦══════════════╗
║ id ║ parent_id ║ value ║
╠════╬══════════════╬══════════════╣
║ 1 ║ 1 ║ 1 ║
║ 2 ║ 1 ║ 2 ║
║ 3 ║ 1 ║ 3 ║
║ 4 ║ 1 ║ 4 ║
║ 5 ║ 1 ║ 5 ║
╚════╩══════════════╩══════════════╝
使用此设置,您可以轻松地在父项上找到单个值,而无需提取多个值并在 PHP 中查看它们。
您需要阅读 Eloquent Relationships 才能完成这项工作,如您展示的示例所示。查看 Laravel 文档。我相信你已经把它加了书签。应该有道理。祝你好运。
推荐阅读
- java - 使用相同的测试数据运行所有测试
- java - Spring 的注解类型需要弃用
- c# - 在 UWP 项目中引用原生 c++ dll
- javascript - AFrame:视频(视频球)结束时如何显示按钮?
- android - 无法解码流:java.io.FileNotFoundException(权限被拒绝)
- matlab - 初始点的 ODE45 奇点
- c# - 使用蜂窝数据时,TcpClient 无法与 Xamarin.Forms 一起使用
- php - 将值插入 MySql 时出现数据库错误
- jquery - 如何在 asp.net 控件单击时维护 jQuery 中的克隆内容?
- mocha.js - SequelizeDatabaseError:由于并发更新,无法序列化访问