sqlite 在中使用时,在CASE语句中使用LIKE或CONTAINS,可以吗?

jgzswidk  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(183)

我正在尝试更新游戏数据库,但我被困在了某个点上。
它缺少了所有有多个版本的价值观。
不必遍历数据库并查看遗漏了哪些值并将它们添加到SQL中,有没有办法在脚本中将它们全部捕获?
我试过并试图添加Like,似乎不能在同一个语句中包含IN和Like(从我尝试的情况来看),我也尝试使用Left(Family,4),但这不起作用。
我不希望有一个庞大的脚本为每个值使用AND和OR语句。
任何帮助都是最好的。

UPDATE monster
SET ecosystem =

( CASE 
WHEN family in ('Behemoth', 'Buffalo', 'Cehuetzi', 'Cerberus', 'Coeurl', 'Dhalmel', 'Gnole', 'Manticore', 'Marid', 'Opo-opo', 'Raaz', 'Rabbit', 'Ram', 'Sheep', 'Tiger', 'Yztarg') THEN 'Beast' 
WHEN family in ('Adamantoise', 'Bugard', 'Eft', 'Gabbrath', 'Hill', 'Lizard', 'Matamata', 'Peiste', 'Raptor', 'Wivre') THEN 'Lizard' 
WHEN family in ('Antlion','Bee','Bees','Beetle','Bztavian','Chapuli','Chigoe','Crawler','Diremite','Fly','Flies','Gnat','Ladybug','Mantid','Mosquito','Scorpion','Spider','Twitherym','Wamoura','Wamouracampa') THEN 'Vermin' 
WHEN family in ('Belladonna','Flytrap','Funguar','Goobbue','Leafkin','Mandragora','Morbol','Panopt','Panopts','Rafflesia','Sabotender','Sapling','Snapweed','Treant','Yggdreant') THEN 'Plantoid' 
WHEN family in ('Acuex','Botulus','Flan','Hecteyes','Leech','Plovid','Sandworm','Slime','Slug','Worm') THEN 'Amorph' 
WHEN family in ('Amphiptere','Apkallu','Bat','Cockatrice','Colibri','Flock Bat','Greater Bird','Harpeia','Hippogryph','Lesser Bird','Tulfaires','Waktza') THEN 'Bird'
WHEN family in ('Crab','Craklaw','Frog','Orobon','Pteraketos','Pugil','Rockfin','Sea Monk','Ruszor','Uragnite') THEN 'Aquan'
WHEN family in ('Corpselight','Corse','Doomed','Dullahan','Fomor','Ghost','Hound','Naraka','Qutrub','Skeleton','Vampyr') THEN 'Undead'
WHEN family in ('Acrolith','Bomb','Bombs','Cardian','Caturae','Cluster','Detector','Doll','Evil Weapon','Golem','Grimoire','Iron Giant','Khimaira','Magic Pot','Marolith','Mimic','Snoll') THEN 'Arcana'
WHEN family in ('Ahriman','Defiant','Demon','Demons','Dvergr','Gallu','Gargouille','Imp','Macuil','Soulflayer','Taurus') THEN 'Demon'
WHEN family in ('Dragon','Hydra','Puk','Wyrm','Wyvern','Wyverns','Wyvern (Dragoon Pet)','Pet Wyvern','Pet Wyvers','Zilant') THEN 'Dragon'
END);
4szc88ey

4szc88ey1#

我最终清理了数据源

UPDATE monster
SET family = RTRIM(Family, '%s');

一旦我这样做了,它是非常小的清洁..感谢您的回复。

相关问题