gpt4 book ai didi

mysql - 2 个索引的错误结果

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

id  company  supplier
1 10 105
2 10 102
3 10 105
4 10 112
5 10 105

以上表为例。

使用公司和供应商作为索引。

使用 SELECT * FROM table WHERE company = 10; -> 返回 5 行。好的

使用 SELECT * from table WHERE supplier = 105; -> 返回 3 行。好的

使用 SELECT * from table WHERE company = 10 AND supplier = 105; -> 仅返回 1 行。问题在这里。

表使用的是 INNODB 格式。

我已经使用了 OPTIMIZE TABLE。

关于这种行为有什么想法吗?

根据要求。原表。字段“empresa”和“fornecedor”的问题。

CREATE TABLE `contas_lancadas` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_vinculo` int(11) unsigned NOT NULL DEFAULT '0',
`tipo_vinculo` varchar(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'P' COMMENT 'P - Pedido, OS - Ordem de Serviço',
`numero` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
`data_doc` date DEFAULT NULL,
`moeda` tinyint(1) unsigned NOT NULL DEFAULT '0',
`empresa` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'ID da empresa',
`conta` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'ID do Plano de Conta',
`fornecedor` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'ID dos Favorecidos (Cliente e Fornecedor)',
`conta_corrente` int(6) unsigned NOT NULL DEFAULT '0' COMMENT 'ID da conta corrente',
`vencto` date NOT NULL DEFAULT '0000-00-00',
`pago` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0 - Não-Pago - 1 - Pago.',
`valor` decimal(10,2) NOT NULL DEFAULT '0.00',
`descricao` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`replicar` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '0 - Não possui réplica, 1 - È a conta origem de uma série replicada, N - ID da primeira conta',
`condicao` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0 - Previsto - 1 - Real',
`data_pgto` date DEFAULT '0000-00-00',
`juros` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'juros pagos da conta',
`multa` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'multa paga da conta',
`desconto` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'desconto recebido da conta',
`data_cadastro` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`id_caderneta` int(11) DEFAULT '0',
`vencto_original` date DEFAULT '0000-00-00' COMMENT 'Data de vencimento original (data do cadastro)',
PRIMARY KEY (`id`),
KEY `id_pedido` (`id_vinculo`),
KEY `numero` (`numero`),
KEY `conta` (`conta`),
KEY `conta_corrente` (`conta_corrente`),
KEY `fornecedor` (`fornecedor`),
KEY `empresa` (`empresa`)
) ENGINE=InnoDB AUTO_INCREMENT=1221384 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

我尝试删除并重新创建索引。没有索引工作正常。与他们...同样的问题。

最佳答案

问题已解决。

将 MySQL 更新到版本 5.6.19(之前是 5.5.something)。

问题是具有多个索引的分区表。更多信息在这里link

感谢您的帮助。

关于mysql - 2 个索引的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33147526/

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