Вот моя таблица mysql.Как найти идентификаторы с суммой нескольких строк в mysql?
CREATE TABLE IF NOT EXISTS tbl_money (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
amount int(11) NOT NULL,
used int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;
INSERT INTO tbl_money (id , amount , used) VALUES
(8, 2, 0),
(9, 4, 0),
(10, 4, 0),
(11, 3, 0),
(12, 8, 0),
(13, 10, 0),
(14, 13, 0);
Идентификатор является полем первичного ключа, и деньги могут иметь любое число от 1 до любого числа.
Проблема: Предположим, что мне нужно найти идентификатор из таблицы, где сумма равна 8. Это просто, потому что id 5 содержит сумму 8. Но если мне нужно найти id с 14 суммой, которая не существует. Я должен выбрать 2 или более полей, сумма которых будет равна 14. Например, в приведенной выше таблице я могу выбрать id 6 и id 3, сумма которых равна 14. То же, что и мне нужно найти 6, мне нужно выбрать id 1 и 2, потому что их сумма равна шести.
Иногда нам может потребоваться выбрать более двух строк, чтобы сделать равную сумму. Но если какое-либо условие не соответствует всем строкам таблицы, мы можем вернуть 0.
Условие: Строка, которая уже выбрана, которая не может быть выбрана снова. Использованное поле всегда должно быть 0. Если значение используемого поля равно 1, мы не можем его выбрать. Мы будем искать только четное число, поэтому нам не нужно беспокоиться о нечетных числах.
Просьба предложить мне, как решить этот алгоритм. Заранее спасибо.
Неправильная структура таблицы. id int (11) NOT NULL, должен быть id int (11) NOT NULL AUTO_INCREMENT PRIMARY KEY –
Если это так, то для получения значения '4',' id 1,2 и 5' также можно выбрать. Потому что вы упомянули «два или более полей». – Viki888
@ Viki888 да брат. Это тоже вариант. –