2011-11-02 13 views
13

Mam tabelę, która zawiera nazwy kolumn, takie jak 25, 50, 100, itd ..Czy numer może być użyty do nadania nazwy kolumnie tabeli MySQL?

Podczas próby aktualizacji tabeli pojawia się błąd, nie ważne jak to zrobić

UPDATE table SET '25'='100' WHERE id = '1' 

mam próbowałem zacytować i poprzeć każdy sposób, ale bez powodzenia.

Błąd jest zawsze wzdłuż linii:

masz błąd w składni SQL; sprawdzić podręcznika, który odpowiada twojej wersji serwera MySQL dla prawego składnię używaną w pobliżu „” 25 „= 100 gdzie id = 1” w linii 1

Jeśli zmienić nazwę kolumny aby twentyfive - Nie mam problem, ale tego nie chcę. Czy można używać numeru jako nazwy kolumny?

+1

Mam dały odpowiedź, ale nadal bym chciał powiedzieć, że myślę, używając nazwy pól numerycznych jest nieco niekonwencjonalny, a ja mają tendencję do przedrostków pól. – Matthew

+0

odnoszą się do tego postu, http://stackoverflow.com/questions/41711470/laravel-how-to-access-column-w-number-name-of-a-table –

Odpowiedz

34

Od the docs:

Identyfikatory mogą zaczynać się cyfrą, ale chyba cytowany nie może składać się wyłącznie z cyfr.

Czyli trzeba cytować go z tyłu kleszcze jak `25`:

UPDATE table SET `25`='100' WHERE id='1' 
+1

Dzięki. Po przeczytaniu niektórych zgadzam się, przedrostek kolumny jest lepszą praktyką. –

2

Jeśli z jakiegoś powodu powinieneś bazować na pewnej liczbie, do każdego numeru możesz dodać prosty przedrostek (np. "Col25", "col87" itd.).

+1

To nie jest prawdą w MySQL. –

-1

Names w MySQL może rozpocząć z cyfrą, ale nie może być całkowicie cyfry - nie mogą być zbliżonej z liczbą całkowitą. Więc nie.

A jeśli uruchamiasz swój identyfikator za pomocą cyfry, powinieneś być pewien, że trzymasz się MySQL, ponieważ wiele (większość?) Innych silników baz danych wymaga znaku alfanumerycznego z przodu nazw kolumn.

(podano w komentarzach, w pełni całkowitą nazwa kolumny jest dozwolony jeśli konsekwentnie używać znaku lewy apostrof - jeśli próbował odwrócone, pojedyncze apostrofy i wciąż mam błąd składni, dodawać dokładną grawis składni użyłeś).

Oczywiście, jeśli zdecydujesz się na kolumny o całkowitej nazwie, utworzysz trudny do odczytania kod SQL!

+1

Jesteś tego pewien? Właśnie utworzyłem tabelę o nazwie "1" z kolumną o nazwie "2", musiałem oczywiście zastosować oczywiście backticks. –

+0

To nie jest prawdą w MySQL. ;) – Matthew

+1

Rzeczywiście, obie są poprawne (dokumentacja MySQL jest lepsza niż na informit.com). –

3

Jak mówili inni, można wykonać kopię zaznaczenie nazwy tabel, kolumn itp Wystarczy upewnić się, że nie back-tyka swoje wartościinaczej będzie to interpretować je jako nazwy kolumn.Więc Twój przykład tylko 25 musi być z powrotem zaznaczone:

UPDATE table SET `25`=100 WHERE id=1 
Powiązane problemy