我有一个连接到SQL数据库的Java程序。我需要从具有以给定字符串开头的字段的表中检索记录。我发起了这个查询:
SELECT s.DATA
FROM TMT_SOLICITUD s, TMT_TRAMITES t
WHERE s.IDTRAMITE='723'
AND s.IDTRAMITE=t.IDTRAMITE
AND s.DATA LIKE '<?xml *'
我知道没有使用表TMT_TRAMITES。我们仍在开发该程序,它将很快使用。忽略那部分。
问题是返回给我的结果集是空的。但是,如果通过Access启动相同的查询,它会返回4条记录(这是正确的)。
任何人都知道如何正确使用命令LIKE,或者这不起作用的原因?
答案 0 :(得分:3)
尝试使用'%'代替'*': %允许您匹配任何长度的任何字符串(包括零长度)
WHERE EMP_name like 'Hew%';
或
WHERE EMP_name like '%Hew';
或
WHERE EMP_name like '%Hew%';
答案 1 :(得分:2)
我已经遇到过这种问题。
对于Like命令,Access SQL不使用与标准SQL相同的通配符。
当您使用库通过Java访问数据库时,请尝试替换
AND s.DATA LIKE '*'
与
AND s.DATA LIKE '%'
AS'%'是获取任何字符串的标准通配符。
答案 2 :(得分:0)
我会尝试使用%而不是*。您可以将它放在查询字符串中的任何位置,并根据需要多次使用它。但是,我没有看到如何使用通配符而没有任何其他数据来缩小它是有意义的 - 它不会是非常有用的。除非,你想匹配实际的星号(我可能会误解你的意图),然后使用%*%