✦ Oplossingen · Database (MySQL/MariaDB)

MySQL: Unknown column in 'field list' (fout 1054)

'ERROR 1054 (42S22): Unknown column 'x' in 'field list'' betekent dat de query een kolom gebruikt die niet bestaat: een tikfout, een ontbrekende migratie of verkeerde aanhalingstekens.

Waarom gebeurt dit?

MySQL meldt Unknown column 'prijs_incl' in 'field list' als een query een kolom noemt die niet in de tabel staat. 'field list' betekent dat het in het SELECT- of INSERT-deel staat; dezelfde fout kan ook 'in where clause' of 'in order clause' zeggen.

Na een update van software is de meest voorkomende oorzaak een databasemigratie die niet is uitgevoerd: de nieuwe code verwacht een kolom die in jouw database nog niet bestaat. Een andere klassieker: een tekstwaarde tussen backticks in plaats van aanhalingstekens.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Controleer of de kolom bestaat

    Bekijk de kolommen van de tabel en vergelijk de naam, inclusief schrijfwijze.

    SHOW COLUMNS FROM producten;
  2. Let op backticks en aanhalingstekens

    Backticks zijn voor namen van kolommen en tabellen, enkele aanhalingstekens voor tekstwaarden. Een waarde tussen backticks ziet MySQL als kolomnaam.

    -- fout: `Amsterdam` wordt gelezen als kolom
    SELECT * FROM klanten WHERE plaats = `Amsterdam`;
    -- goed:
    SELECT * FROM klanten WHERE plaats = 'Amsterdam';
  3. Voer de migraties uit na een update

    Gebruikt de software migraties (Laravel, Symfony, veel CMS'en), voer die dan uit. In WordPress-plugins gebeurt dit meestal automatisch bij de update of na een klik op 'Database bijwerken'.

    php artisan migrate --force   # Laravel, na een back-up
  4. Controleer aliassen

    Een alias uit SELECT kun je niet in WHERE gebruiken; daar moet de oorspronkelijke kolom of een subquery staan. In HAVING en ORDER BY mag het wel.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Na een plugin-update krijg ik deze fout.

De update heeft de databasestructuur nog niet bijgewerkt. Zoek in het beheer naar een melding om de database bij te werken, of draai de update opnieuw.

De kolom bestaat wel, toch krijg ik de fout.

Controleer of je in de juiste database en tabel kijkt (testomgeving vs. live) en of er geen onzichtbare spatie in de naam staat.

Mag ik de kolom zelf toevoegen?

Liever via de migratie van de software zelf, zodat type en standaardwaarde kloppen.