2014-03-27 23 views
0

我有下面結構的表MySQL的 - 其中多個列數據

prod_ID | barcode_int | value1 | value2 | value3 

樣本數據集將是

156123 | 1 | stock | 2014-03-21 | warehouse1 
156123 | 2 | stock | 2014-03-22 | warehouse2 
156123 | 3 | return | 2014-03-23 | warehouse1 

我有物理產品及對其條形碼 - 我的條形碼的長度12char並且由以下結構中的prod_id和barcode_int值聯合組成:

prodid 156123 and barcode_int 1 would produce 001561230001 

所以第一8 char是PRODID在開始化妝0到8 digits last 4 char與0 barcode_int在開始時以彌補4 digits 我總共有12 digits

條形碼我想返回的行從這個表where子句,我表示我有條形碼和結果獲得相應的行數據,如

select * from products where barcode IN (xxxx,yyyy,zzzz); 

我只能在此表中選擇。

的感謝!

+0

posible output expected? – Divya

+0

如果我正在搜索001561230001,我需要156123 | 1 |股票| 2014-03-21 | warehouse1,如果我有多個條形碼在我需要獲得所有相應的行。 – user2722588

回答

0
SELECT * 
FROM products 
WHERE CONCAT(LPAD(prod_ID, 8, '0'), LPAD(barcoder_int, 4, '0')) IN (xxxx,yyyy,zzzz); 
+0

美麗!謝謝! – user2722588

+0

當然,您需要使用您的實際字段名稱,並假設您根據需要構建搜索條件。我的答案中的一點是用LPAD填充字段值,還使用CONCAT函數。 – smozgur

+0

不客氣。 – smozgur

相關問題