sql >> Database >  >> RDS >> Mysql

Aliasnaam gebruiken in een andere kolom

Probeer het minste deel als subselect te plaatsen. Dat je kunt aliassen.

Zoiets als dit:

SELECT 
  mytable.myWord, 
  myPos.l,
  if (l=999,mytable.myWord,SUBSTR(mytable.myWord,1,l-1)) as NewString
FROM myTable, 
(select myword, LEAST (
    if (Locate('0',myWord) >0,Locate('0',myWord),999),
    if (Locate('1',myWord) >0,Locate('1',myWord),999),
    if (Locate('2',myWord) >0,Locate('2',myWord),999),
    if (Locate('3',myWord) >0,Locate('3',myWord),999),
    if (Locate('4',myWord) >0,Locate('4',myWord),999),
    if (Locate('5',myWord) >0,Locate('5',myWord),999),
    if (Locate('6',myWord) >0,Locate('6',myWord),999),
    if (Locate('7',myWord) >0,Locate('7',myWord),999),
    if (Locate('8',myWord) >0,Locate('8',myWord),999),
    if (Locate('9',myWord) >0,Locate('9',myWord),999)
  ) as l from mytable)
as myPos
where myPos.myword = mytable.myword

SQLFiddle-voorbeeld



  1. Projectlinks werken niet op Wamp Server

  2. Datatype komt niet overeen (code 20) tijdens het invoegen

  3. Python psql \kopieer CSV naar externe server

  4. MySQL .Net-verbinding poolverbinding.Open() erg traag