0

我有一个连接到 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 ,或者这不起作用的原因?

4

3 回答 3

3

尝试使用 '%' 而不是 '*': % 允许你匹配任何长度的任何字符串(包括零长度)

WHERE EMP_name like 'Hew%';

或者

WHERE EMP_name like '%Hew';

或者

WHERE EMP_name like '%Hew%';
于 2013-04-15T07:47:30.770 回答
2

我已经遇到过这种问题。

Access SQL 对 Like 命令使用的通配符与标准 SQL 不同。

当您使用库通过 java 访问您的数据库时,请尝试替换您的

AND s.DATA LIKE '*'

AND s.DATA LIKE '%'

AS '%' 是获取任何字符串的标准通配符。

于 2013-04-15T07:50:57.580 回答
0

我会尝试使用 % 而不是 *。您可以将它放在查询字符串中的任何位置,并根据需要多次使用它。但是,我看不出只使用通配符而不使用任何其他数据来缩小范围有什么意义——它不会很有用。除非您想匹配实际的星号(我可能会误认为您的意图),然后使用%*%

于 2013-04-15T07:47:28.557 回答