2013-01-07 19 views
56

Sto lavorando a un progetto in cui un altro sviluppatore ha creato una tabella con nomi di colonne come 'Business Name'. Quello è uno spazio tra due parole. Sono un utente Linux ora; Se eseguo un'istruzione SELECT con "Nome azienda", significa che non ci sono colonne con il nome "Business".Come selezionare un nome di colonna con spazio tra MySQL su Liunx/Ubuntu

Come posso risolvere questo problema?

+0

Non ho abbastanza reputazione per commentare correttamente, così taggato alla fine: La soluzione postata sopra nei commenti: ** \ 'fastidioso \". \ "Nome commerciale \" ** non ha funzionato per me in mySQL in una dichiarazione where. Lasciare cadere le virgolette sul nome della tabella ha funzionato: vale a dire ** annoying_table. \ 'Nome commerciale ** ** – Tim0th1

+0

A volte, visito questo sito solo per fissare profili con una reputazione e una fantasticheria super alte su come deve essere stato nel all'inizio del 2000, quando si poteva fare una domanda su come gestire valori nulli e ottenere 1000 reputazione per questo. haha! :-) – rbsdca

risposta

88

In genere il primo passo è quello di non farlo in primo luogo, ma se questo è già stato fatto, allora avete bisogno di ricorrere a citare correttamente i nomi di colonna:

SELECT `Business Name` FROM annoying_table 

Di solito questo genere di cose sono creato da persone che hanno usato qualcosa come Microsoft Access e usano sempre una GUI per fare le loro cose.

+24

Questo o parentesi '[]' dovrebbe funzionare. +1 –

+0

@tadman Se copio e incollo la tua query funziona, ma se digito virgolette singole dalla tastiera non funziona. ie. SELECT 'Business Name' FROM fastidioso_table non funziona – ehp

+9

È perché non sono le virgolette singole, ma i simboli * tick * che di solito si trovano sulla tastiera a sinistra della cifra 1. – peterm

-6

Penso doppi apici lavora troppo:

SELECT "Business Name","Other Name" FROM your_Table 

Ma ho testato solo su SQL Server NON mySQL nel caso qualcuno lavorare con MS SQL Server.

+4

Seleziona sempre la stringa "Nome azienda", non il contenuto della colonna. – JonasB

+0

sì funziona in SQL Server – Nishantha

2

Ad ognuno il suo modo, ma corretto, di codificarlo è rinominare le colonne inserendo il carattere di sottolineatura in modo che non ci siano spazi vuoti. Ciò assicurerà zero errori durante la codifica. Quando si stampano i nomi delle colonne per la visualizzazione pubblica, è possibile eseguire la ricerca e sostituzione per sostituire il carattere di sottolineatura con uno spazio.

6

Se le virgolette doppie non funzionano, provare a includere la stringa tra parentesi quadre.

Per esempio:

SELECT "Business Name","Other Name" FROM your_Table 

può essere cambiato come

SELECT [Business Name],[Other Name] FROM your_Table

1

È necessario utilizzare spuntare al posto di singola citazione

preventivo singolo - 'Nome Business' - sbagliato

Tick - "Nome attività commerciale" - Corret

È possibile trovare il segno di spunta (`) fornito con Tilda (~) accanto alla cifra 1 in Tastiera.

Problemi correlati