2014-01-29 41 views
-6

如果我嘗試在php數據庫中搜索列名'*',它會列出所有列條目。有什麼方法可以搜索列名'*'我們如何在php中搜索數據庫中的列'*'?

+1

我可以看到你的表格結構嗎? – user2936213

+0

當我們執行'SELECT * FROM ...'時,它意味着「選擇表中的所有列」。 – Rachcha

+4

你是什麼意思列名''*「'?你有一個名稱爲「*」的專欄嗎? –

回答

2

如果你想使用*作爲列名,然後用反引號(')

create table test(`*` int, var2 int); 
select `*` from test 

下面是一個例子Fiddle

+1

+1給出正確的答案,儘管我仍然不明白爲什麼有人會認爲這樣的數據庫設置是個好主意。 – Spudley

0
mysql> 
mysql> CREATE TABLE test_(`*` INT); 
Query OK, 0 rows affected (0.28 sec) 

mysql> 
mysql> desc test_; 
+-------+---------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------+---------+------+-----+---------+-------+ 
| *  | int(11) | YES |  | NULL |  | 
+-------+---------+------+-----+---------+-------+ 
1 row in set (0.00 sec) 


mysql> SELECT COLUMN_NAME,TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = '*' AND TABLE_SCHEMA = 'world'; 
+-------------+------------+ 
| COLUMN_NAME | TABLE_NAME | 
+-------------+------------+ 
| *   | test_  | 
+-------------+------------+ 
1 row in set (0.00 sec) 
0
* is a wildcard that is used to denote 'ALL'. 

所以,圍繞着它,當你射擊一個查詢,如選擇* from table_name它給你所有的列。 雖然你可以創建一個名爲*的列,但它根本不推薦,因爲它可能會產生其他查詢的問題(當你想選擇所有的列時)

這是另一種解決方案,如果你想*你可以做以下列名:

SELECT column_name AS * FROM table_name