我该如何写where子句,其中的值有空格:SQL查询空间值
其实我使用openJPA,我必须设置参数。 我将设置的值有一个空格,例如: String somevalue =“firstname lastname”; query.setparameter(somevalue);
我这样做,但没有工作。任何建议将不胜感激。谢谢。
我该如何写where子句,其中的值有空格:SQL查询空间值
其实我使用openJPA,我必须设置参数。 我将设置的值有一个空格,例如: String somevalue =“firstname lastname”; query.setparameter(somevalue);
我这样做,但没有工作。任何建议将不胜感激。谢谢。
这应该工作。引号内的空格是有效的。或许在姓氏后面有空格,或者姓氏的大小写不正确。
其实是query.setParameter(带空格的值);是不是在工作 我需要做一些特殊的事情query.setparameter() – user234194 2010-04-30 03:32:31
该语法确实有效;你必须输入一个不存在的名字。
sqlite> CREATE TABLE FOO (name TEXT);
sqlite> INSERT INTO FOO VALUES('joe smith');
sqlite> SELECT * FROM FOO WHERE name = 'joe smith';
joe smith
如果这是一个一次性的搜索,你可能会更好试图the LIKE
operator找到匹配:
sqlite> SELECT * FROM FOO WHERE name LIKE '%smith%';
joe smith
实际上query.setParameter(值与空间);是不是在工作 我需要做一些特殊的事情query.setparameter() – user234194 2010-04-30 03:32:05
没有什么不对的查询。
如果没有返回结果,那是因为您的数据有问题。你是以'char'还是'varchar'存储?如果它是'char',那么你会有额外的填充字符在那里观看。
实际上query.setParameter(值与空间);不工作 我需要做一些特殊的事情query.setparameter() – user234194 2010-04-30 03:31:11
您使用的是什么RDBMS? – 2010-04-30 02:55:03
你的桌子是什么样的? – 2010-04-30 02:55:11
看看你输入的名字是否有撇号。如果是这样,你需要用双撇号来转义它们:'SELECT * FROM table1 WHERE name ='Miles O''Brien';'另外,如果你需要做模式匹配(例如,如果有杂散空间),而不是完全匹配,查看LIKE关键字。 – 2010-04-30 02:57:42