2014-01-29 2 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'. 

Итак, когда вы стрельба такой запрос, как select * from table_name, он дает вам все столбцы. , хотя вы можете создать столбец с именем «*», но он НЕ РЕКОМЕНДУЕТ вообще, так как он может создавать проблемы с другими запросами (если вы хотите выбрать все столбцы)

Вот еще одно решение, если вы хотите * в качестве названия столбца вы можете сделать следующее:

SELECT column_name AS * FROM table_name 
Смежные вопросы