gpt4 book ai didi

mysql - 如何在 MySQL 中使用 IN 子句和 zerofill 字段选择行

转载 作者:行者123 更新时间:2023-11-28 23:31:43 26 4
gpt4 key购买 nike

我有以下表结构:

CREATE TABLE `ss_highlight_ids` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`highlight_id` int(10) unsigned zerofill NOT NULL DEFAULT '0000000000',
PRIMARY KEY (`id`),
UNIQUE KEY `highlight_id_UNIQUE` (`highlight_id`),
KEY `highlight_id_INDEX` (`highlight_id`) COMMENT ''
) ENGINE=InnoDB AUTO_INCREMENT=13580 DEFAULT CHARSET=latin1

而且我喜欢使用另一个表的 ID 来选择 ss_highlight_ids.highlight_id 中具有相同 ID 的所有行。

我用来选择行的查询如下:

SELECT
*
FROM
`ss_highlight_ids` AS `hi`
WHERE
`hi`.`highlight_id` IN(
SELECT
LPAD( `p`.`ID`, 10, '0' ) AS `ID`
FROM
ss_posts AS `p`
WHERE
`p`.`post_type` = 'football-highlights'
AND `p`.`post_date` > DATE_SUB(NOW(), INTERVAL 1 DAY)
)

但不幸的是没有返回任何东西。所以问题是我是否做错了什么,或者我是否应该做其他事情。

请注意,我的数据库中有相关数据,我尝试使用 = 和单个 ID 值来代替 IN并且有效,但不适用于 IN 子句。

最佳答案

您还应该将 lpad 用于 zerofill 列,因为我认为零填充仅用于渲染而不用于评估

SELECT  *
FROM `ss_highlight_ids` AS `hi`
WHERE
lpad(`hi`.`highlight_id`, 10 , '0') IN(
SELECT LPAD( `p`.`ID`, 10, '0' )
FROM ss_posts AS `p`
WHERE `p`.`post_type` = 'football-highlights'
AND `p`.`post_date` > DATE_SUB(NOW(), INTERVAL 1 DAY)
)

关于mysql - 如何在 MySQL 中使用 IN 子句和 zerofill 字段选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37143474/

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