如何在SQL中获取列名

时间:2014-05-23 05:40:26

标签: php sql sql-server-2005 iis-6

我尝试从表中获取列名(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

1 个答案:

答案 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