SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.08.2007 10:08:09

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Как сделать запрос к св-вам стобца?

Подскажите, пожалуйста, как сделать запрос к свойствам столбца? И вообще такое возможно?
надо сделать, что-то вроде этого - if(mysql_query('/*текст запроса к типу столбца*/')=='TEXT'){...}

Отредактированно Hagehog (27.08.2007 10:22:05)

Неактивен

 

#2 27.08.2007 12:10:21

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6727

Re: Как сделать запрос к св-вам стобца?

Возможно начиная с версии 5.0

Код:

SELECT DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='databasename' AND
TABLE_NAME='tablename' AND
COLUMN_NAME='columnname'

Если if Вы хотите делать на уровне PHP, то можете также выполнить
mysql_query("DESC tablename") и обработать вывод.

Неактивен

 

#3 27.08.2007 12:16:53

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Re: Как сделать запрос к св-вам стобца?

Спасибо большое.)

Отредактированно Hagehog (28.08.2007 11:41:02)

Неактивен

 

#4 28.08.2007 11:41:07

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Re: Как сделать запрос к св-вам стобца?

А возможно ли как-нибудь из php обратиться сразу к колнке в таблице, минуя получения данных о 1, 2 и т.д. не нужных полях?

Неактивен

 

#5 28.08.2007 11:51:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6727

Re: Как сделать запрос к св-вам стобца?

Да, возможно, способ описан выше smile

Неактивен

 

#6 28.08.2007 12:17:53

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Re: Как сделать запрос к св-вам стобца?

Если вы про mysql_query("DESC tablename"), то объясните, пожалуйста, как обратится отсюда к конкретному полю, чтоб не приходилось несколько раз использовать mysql_fetch_array, а то я что-то не понимаю. А если про ещё раньший код, то он почему-то не работает версия mysql 5.0.18-max

Неактивен

 

#7 28.08.2007 15:18:40

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6727

Re: Как сделать запрос к св-вам стобца?

Код:

mysql> SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='mysql' AND TABLE_NAME='user' AND COLUMN_NAME='host';
+-----------+
| DATA_TYPE |
+-----------+
| char      | 
+-----------+
1 row in set (0.00 sec)

Должно работать, INFORMATION_SCHEMA появилась в 5.0.0, насколько я понимаю.

Неактивен

 

#8 30.08.2007 09:28:44

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Re: Как сделать запрос к св-вам стобца?

По скольку я новичок в этом деле, мне трудно изъясняться, прошу прощение.
Попытаюсь объяснить... Мне надо сделать на уровне php, как вы мне и посоветовали, я использовал данный запрос - mysql_query("DESC tablename") , но этот запрос не даёт именно того поля, что мне не обходимо, когда я использую mysql_fetch_array(), мне приходится загонять в цикл и искать нужное мне поле, а можно ли как нибудь в РHР с помощью mysql_quert("DESC tablename") обратится к конкретному полю.
MySql код, тот что вы мне дали, работает прекрасно в MySql'e, но вот через mysql_query() что-то не получается.

Неактивен

 

#9 30.08.2007 10:34:29

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3852

Re: Как сделать запрос к св-вам стобца?

В PHP есть функция mysql-list-fields [url]http://ru2.php.net/manual/en/function.mysql-list-fields.php[/url, но при ее использовании Вам тоже придется в цикле перебрать все столбцы. В таком переборе нет ничего страшного. Вы можете написать свою функцию, которая осуществляет перебор и находит нужное поле.

Второй ответ уже приведен:
mysql_query("SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='mysql' AND TABLE_NAME='user' AND COLUMN_NAME='host';");

Неактивен

 

#10 30.08.2007 10:49:18

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Re: Как сделать запрос к св-вам стобца?

Во втором случае каким образом организовать вывод в php?
Спасибо.)

Неактивен

 

#11 30.08.2007 11:28:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3852

Re: Как сделать запрос к св-вам стобца?

Во втором случае каким образом организовать вывод в php?

Код:

$result = mysql_query("SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='mysql' AND TABLE_NAME='user' AND COLUMN_NAME='host';") or die(mysql_error());
if( $aRow = mysql_fetch_assoc($result) ) {
  echo $aRow['DATA_TYPE'];
}

Неактивен

 

#12 30.08.2007 11:56:39

Hagehog
Участник
Зарегистрирован: 27.08.2007
Сообщений: 15

Re: Как сделать запрос к св-вам стобца?

Спасибо большое.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson