我想在表 e:\ ctw 中将chosen
字段设置为true
,以查找与name
不同的所有字段name2
的记录在 d:\ le 表中。 ' ctw.name'记录具有与le.name2
记录相同或更多的字符,因此我想实现外卡搜索;例如,
le.name2 = abc,
ctw.name = abc \ 12a
所以,我想使用像#abc%'这样的通配符搜索,但没有硬编码记录值。也就是说,我想知道是否可以将字段名称与通配符搜索组合如下:
UPDATE ctw SET chosen = .t. WHERE LOWER(name) NOT LIKE ((select LOWER(name2) from le)+'%')
命令输入时出现function name is missing )
错误。
答案 0 :(得分:1)
试试这样:
SET ANSI OFF
UPDATE ctw ;
SET chosen = .t.
WHERE LOWER(name) NOT IN (select LOWER(name2) from le)
答案 1 :(得分:1)
可能这就是你的意思:
UPDATE ctw SET chosen = .t. ;
from le ;
where LOWER(name) LIKE lower(trim(le.Name2))+'%'
因为,默认情况下,SQL中的VFP比较不是ANSI,这意味着相同:
UPDATE ctw SET chosen = .t. ;
from le ;
where LOWER(name) = lower(trim(le.Name2))
但是我不相信非ANSI实现并且使用LIKE的ANSI实现。