假设我有一个表 (tableA
),其中有一列 Kwaliteit
,它将包含一个 int
值(0, 1, 2, 3
) 表示一些字符串值。
这些字符串值序列化存储在另一个表 (tableB
) 中,如下所示:
a:4:{i:0;s:4:"Goed";i:1;s:5:"Matig";i:2;s:6:"Slecht";i:3;s:12:"Afgeschreven";}
这将给出一个像这样的 PHP 数组:
Array
(
[0] => Goed
[1] => Matig
[2] => Slecht
[3] => Afgeschreven
)
问题是,我想过滤 Afgeschreven
。所以我将其插入查询的 LIKE
部分,但这不起作用,因为 int
而不是 string
in 表A
。
如何绕过这个问题?我可以暂时用字符串值更改列值来进行过滤吗?
编辑
这是 tableA
(Kist)
CREATE TABLE IF NOT EXISTS `Kist` (
`idKist` int(11) NOT NULL AUTO_INCREMENT,
`idKistType` int(11) NOT NULL,
`Tag1` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`Tag2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`VisueelNr` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`Bouwjaar` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`kwaliteit` tinyint(1) NOT NULL,
`Actief` tinyint(1) NOT NULL,
PRIMARY KEY (`idKist`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=982 ;
INSERT INTO `Kist` (`idKist`, `idKistType`, `Tag1`, `Tag2`, `VisueelNr`, `Bouwjaar`, `kwaliteit`, `Actief`) VALUES
(1, 1, '0086-1700-0000-0000-0000-371E', '0086-1700-0000-0000-0000-3868', '0', '', 3, 0),
(2, 1, '0086-1700-0000-0000-0000-413F', '0086-1700-0000-0000-0000-409A', '0', '', 0, 1);
和tableB
(Instellingen)
CREATE TABLE IF NOT EXISTS `Instellingen` (
`idInstellingen` int(11) NOT NULL AUTO_INCREMENT,
`Instelling` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
`Waarde` longtext COLLATE utf8_unicode_ci,
PRIMARY KEY (`idInstellingen`),
UNIQUE KEY `Instelling_UNIQUE` (`Instelling`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=220 ;
INSERT INTO `Instellingen` (`idInstellingen`, `Instelling`, `Waarde`) VALUES
(200, 'kistKwaliteit', 'a:4:{i:0;s:4:"Goed";i:1;s:5:"Matig";i:2;s:6:"Slecht";i:3;s:12:"Afgeschreven";}');
序列化值存储在 Waarde
列中
最佳答案
你所拥有的大概是这样的:
select * from tablea where kwaliteit = 'Afgeschreven';
这是行不通的,因为 kwaliteit 是代码,而不是字符串。你正在寻找的是关于这个:
select * from tablea where kwaliteit =
(select kwaliteit from tableb where text = 'Afgeschreven');
关于php - 是 LIKE,但 int 表示应检查的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155776/