我尝试从表中获取列名(IIS,SQL Server PHP)。 我需要检查db中是否存在值,否则如果存在则需要获取列名。但我需要检查同一个表中的3个不同的列。
$sql = "SELECT bag_code, box_code, date_code
FROM packing
WHERE bag_code='$code_verification' OR box_code='$code_verification'
OR date_code='$code_verification'";
我很惊讶于编写一个查询。我搜索过,并没有找到任何解决方案。在这里,我想根据一些特定值
显示列名For Instance , My table is like.
id | fruits |vegetables |softdrink
-----------------------
1 | apple | Onion | Pepsi
2 | mango | Potato | Coke
3 | banana | Bringal | RedBull
如果我有一个值"芒果",那么我应该将列名称作为水果或
如果我有一个值" RedBull",那么我应该将列名称作为softdrink
答案 0 :(得分:0)
如果继续使用这种类型的表结构,将来会遇到很多麻烦。
目前你有这个:
id | fruits |vegetables |softdrink
----+----------+--------------+----------
1 | apple | Onion | Pepsi
2 | mango | Potato | Coke
3 | banana | Bringal | RedBull
你可能想过:
SELECT fruits FROM table
很容易吗?
这是错误的;
你必须这样做:
<强>项
id | item_name| item_type_id |
----+----------+--------------+
1 | apple | 1 |
2 | mango | 1 |
3 | banana | 1 |
4 | Onion | 2 |
5 | Potato | 2 |
6 | Bringal | 2 |
7 | Pepsi | 3 |
8 | Coke | 3 |
9 | RedBull | 3 |
<强> ITEM_TYPE 强>
id | item_type |
----+-------------+
1 | fruits |
2 | vegestables |
3 | softdrinks |
SELECT * FROM table WHERE item_type_id = 1 /*selects all fruits*/
一旦你构建了你的桌子。 这将是问题:
的答案SELECT it.item_type FROM items i INNER JOIN USING(i.item_type_id = it.id) WHERE i.item_name LIKE '%mango%'
这将返回fruits
。