Onbekende kolom in ‘field list’-fout op MySQL Update-query

Ik krijg steeds MySQL-fout #1054 wanneer ik deze update-query probeer uit te voeren:

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH
SET MASTER_USER_PROFILE.fellow=`y`
WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID
AND TRAN_USER_BRANCH.BRANCH_ID = 17

Het is waarschijnlijk een syntaxisfout, maar ik heb geprobeerd in plaats daarvan een inner join en andere wijzigingen te gebruiken, maar ik krijg steeds dezelfde melding:

Unknown column 'y' in 'field list' 

Antwoord 1, autoriteit 100%

Probeer verschillende aanhalingstekens voor “y” te gebruiken, aangezien het aanhalingsteken voor de identificatie de backtick ( ` ) is. Anders “denkt” MySQL dat u naar een kolom met de naam “y” verwijst.

Zie ook MySQL 5-documentatie


Antwoord 2, autoriteit 29%

Sluit een tekenreeks die moet worden doorgegeven aan de MySQL-server tussen enkele aanhalingstekens, bijvoorbeeld:

$name = "my name"
$query = " INSERT INTO mytable VALUES ( 1 , '$name') "

Merk op dat hoewel de zoekopdracht tussen dubbele aanhalingstekens staat, u moet elke tekenreeks tussen enkele aanhalingstekens plaatsen.


Antwoord 3, autoriteit 9%

U kunt uw keuze van aanhalingstekens controleren (gebruik dubbele/enkele aanhalingstekens voor waarden, tekenreeksen, enz. en backticks voor kolomnamen).

Omdat je alleen de tabel master_user_profile wilt bijwerken, raad ik een geneste zoekopdracht aan:

UPDATE
   master_user_profile
SET
   master_user_profile.fellow = 'y'
WHERE
   master_user_profile.user_id IN (
      SELECT tran_user_branch.user_id
      FROM tran_user_branch WHERE tran_user_branch.branch_id = 17);

Antwoord 4, autoriteit 2%

In mijn geval werd dit veroorzaakt door een onzichtbare volgspatie aan het einde van de kolomnaam. Controleer gewoon of je in plaats daarvan echt “y” of “y” gebruikt.


Antwoord 5

Terwijl ik werkte aan een .Net-app die eerst met EF-code was gebouwd, kreeg ik deze foutmelding toen ik mijn migratie probeerde toe te passen waarbij ik een Sql("UPDATE tableName SET columnName = value"); had verklaring.

Blijkbaar heb ik de kolomnaam verkeerd gespeld.


Antwoord 6

Gewoon mijn ervaring hierover delen. Ik had hetzelfde probleem. De insert- of update-instructie is correct. En ik heb ook de codering gecontroleerd. De kolom bestaat.
Vervolgens! Ik kwam erachter dat ik verwees naar de kolom in mijn Trigger.
U moet ook uw trigger controleren om te zien of een script verwijst naar de kolom waarmee u het probleem ondervindt.


Antwoord 7

Als het slaapstand en JPA is. controleer de naam van de doorverwezen tabel en de kolommen komen mogelijk niet overeen


Antwoord 8

Gewoon mijn ervaring hierover delen. Ik had hetzelfde probleem. Mijn vraag was als volgt:

select table1.column2 from table1

Tabel1 had echter geen kolom2.


Antwoord 9

In mijn geval zocht de Hibernate naar kolommen in een snake-case, zoals create_date, terwijl de kolommen in de DB in de camel-case waren, bijvoorbeeld createDate .
Toevoegen

spring:
  jpa:
    hibernate:
      naming: # must tell spring/jpa/hibernate to use the column names as specified, not snake case
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
        implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl

naar de application.ymlhielp het probleem op te lossen.


Antwoord 10

Ook ik kreeg dezelfde fout, het probleem in mijn geval is dat ik de kolomnaam in de GROUP BY-clausule heb opgenomen en deze fout heeft veroorzaakt. Dus verwijderde de kolom uit de GROUP BY-clausule en het werkte!!!


Antwoord 11

Ik kreeg deze fout bij het gebruik van GroupBy via LINQ op een MySQL-database. Het probleem was dat de anonieme objecteigenschap die door GroupBy werd gebruikt, niet overeenkwam met de naam van de databasekolom. Opgelost door de naam van de anonieme eigenschap te wijzigen zodat deze overeenkomt met de kolomnaam.

.Select(f => new 
{
   ThisPropertyNameNeedsToMatchYourColumnName = f.SomeName
})
.GroupBy(t => t.ThisPropertyNameNeedsToMatchYourColumnName);

Antwoord 12

Een zoekopdracht als deze zal ook de fout veroorzaken:

SELECT table1.id FROM table2

Waar de tabel is opgegeven in kolom selecteren en niet is opgenomen in de from-clausule.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

fifteen + 7 =

Other episodes