2011-11-25 12 views
5

Me parece que no puede encontrar o escribir una sqlquery que selecciona el valor por defectoCómo seleccionar el valor predeterminado de un campo

(y no creo que pueda generar en phpmyadmin para que copie)

me trataron de seleccionarlo como si fuera un disco, pero fue en vano ...

$defaultValue_find = mysql_query(
     "SELECT $group FROM grouptable WHERE $group='DEFAULT'") 
     or die("Query failed:".mysql_error()); 
$defaultValue_fetch = mysql_fetch_row($defaultValue_find); 
$defaultValue = $defaultValue_fetch[0]; 
echo $defaultValue; 

Respuesta

11
"SELECT $group FROM grouptable WHERE $group=DEFAULT($group) " 

O creo que mejor:

"SELECT DEFAULT($group) FROM grouptable LIMIT 1 " 

Actualización - corrección

Como se señaló @ Jeff Caron, lo anterior sólo funcionará si hay al menos 1 fila de grouptable. Si desea obtener el resultado aunque la tabla de grupo no tenga filas, puede usar esto:

"SELECT DEFAULT($group) 
FROM (SELECT 1) AS dummy 
    LEFT JOIN grouptable 
    ON True 
LIMIT 1 ;" 
+0

Utilicé la segunda. Perfecto gracias. Una nota es, por supuesto, ('grupo') debería leer ($ grupo) - únicamente en relación con la forma en que formulé la pregunta - de todos modos, ¡gracias y aceptada! – Gamemorize

+0

@ Adam: tienes razón. Si '$ group' es una columna, sí. Pensé por un momento que podría ser un valor de una columna, editado ahora. –

+3

Esto solo funcionará si hay al menos 1 resultado. Hasta donde yo sé, la única forma de obtener siempre el valor predeterminado de una columna es con algo como eso: SELECCIONE COLUMN_DEFAULT FROM information_schema.columns WHERE TABLE_SCHEMA = 'your_database_name' Y TABLE_NAME = 'your_table_name' Y COLUMN_NAME = 'your_column_name'; –

Cuestiones relacionadas