gpt4 book ai didi

php - MySQL - 从序列化数组执行 JOIN?

转载 作者:行者123 更新时间:2023-11-29 14:02:36 24 4
gpt4 key购买 nike

我正在使用 PHP 和 MySQL 创建一个简单的购物车脚本,但我无法找出执行此查询的最快、最有效的方法。

我有一个名为 carts 的表和一个名为 products 的表。 carts 表有一个名为 contents 的列,其中包含项目编号的序列化数组。这些商品编号与 productspid 列相对应。

我想要做的是有一个查询来提取数据数组,并将数组的内容与 products 中的相应行进行匹配,这样我就可以回显所有匹配的数据该产品。

CREATE TABLE `carts` (
`cart_id` INT(10) NOT NULL AUTO_INCREMENT,
`session_id` VARCHAR(50) NULL DEFAULT NULL,
`contents` LONGTEXT NULL,
`first_name` VARCHAR(50) NULL DEFAULT NULL,
`last_name` VARCHAR(50) NULL DEFAULT NULL,
`address` VARCHAR(100) NULL DEFAULT NULL,
`city` VARCHAR(100) NULL DEFAULT NULL,
`state` VARCHAR(100) NULL DEFAULT NULL,
`postal` VARCHAR(20) NULL DEFAULT NULL,
`country` VARCHAR(20) NULL DEFAULT NULL,
PRIMARY KEY (`cart_id`),
UNIQUE INDEX `session_id` (`session_id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
AUTO_INCREMENT=7;

CREATE TABLE `products` (
`pid` INT(4) NOT NULL AUTO_INCREMENT,
`itemTitle` VARCHAR(100) NOT NULL,
`itemNumber` VARCHAR(10) NOT NULL,
`itemDescription` LONGTEXT NOT NULL,
`imgArray` LONGTEXT NOT NULL,
`visibility` TINYINT(1) NOT NULL,
`availability` TINYINT(1) NOT NULL,
`itemPrice` DECIMAL(8,2) NOT NULL,
`accentColor` VARCHAR(11) NOT NULL,
PRIMARY KEY (`pid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
AUTO_INCREMENT=143;

序列化数组示例:a:6:{i:0;s:3:"115";i:2;s:2:"82";i:4;s:2:"79";i:5;s:2:"58";i:6;s:2:"38";i:7;s:2:"85";}

最佳答案

虽然技术上可行,但您不应该尝试在序列化列上JOIN。最快的方法是在购物车和产品之间使用桥接台。修改代码以处理桥接表中的行而不是单个序列化字段应该不难。

关于php - MySQL - 从序列化数组执行 JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com