這是我的mysql表。如何在mysql中查找帶有多行總和的ID?
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。它很簡單,因爲id 5包含數量8.但是,如果我必須找到id爲14的數量不存在。我必須選擇2個或更多的字段現在哪個總和將等於14.例如,在上面的表中,我可以選擇id 6和id 3,其總和等於14.同樣,如果我需要找到6我必須選擇id 1和2,因爲它們的金額總和等於六。
有時候我們可能需要選擇多於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是兄弟。這也是一種選擇。 –