Seu以下映射
@Entity
public class User {
private Integer id;
@Id;
private Integer getId() {
return this.id;
}
}
Run Code Online (Sandbox Code Playgroud)
注意id是一个Integer.现在我需要使用like运算符来进行这个HQL查询
Query query = sessionFactory.getCurrentSession().createQuery("from User u where u.id like :userId");
Run Code Online (Sandbox Code Playgroud)
ATT:它就像运营商NOT =(等于运营商)
然后我用
List<User> userList = query.setParameter("userId", userId + "%").list();
Run Code Online (Sandbox Code Playgroud)
但是没有用,因为Hibernate抱怨IllegalArgumentException发生了调用User.id的getter
即使我使用
query.setString("userId", userId + "%");
Run Code Online (Sandbox Code Playgroud)
这是行不通的
我应该用什么来传递查询?
通配符*只能在单词的末尾使用,例如user*.
我想查询一下%user%,怎么做?
我有一个客户表有两列first_name和last_name.
如何在查询中使用LIKE,以便能够以相同的温度从两列获取数据?
例如:
SELECT CONCAT(first_name, ' ', last_name) as 'full_name'
FROM customer WHERE full_name LIKE 'John D%'
Run Code Online (Sandbox Code Playgroud)
我试过这个,它告诉我full_name列不存在.
我正在尝试从我的数据库中检索信息.
我有像Lim Won Mong和的话Limited.
如果我做我的查询,SELECT name FROM memberdb WHERE name LIKE '%LIM%'时,会显示这两个Lim Won Mong和Limited我只希望从数据中Lim Won Mong.
我应该如何重写我的查询?
我有character varying一个表,其中的条目的一些(不是全部)值包含百分比,如'12%','97%'等我想找到所有包含百分比值.换句话说,我想找到所有以百分号('%')结尾的值.
我们正在运行许多产品搜索一个包含部分匹配条形码的大型目录.
我们从简单的查询开始
select * from products where barcode like '%2345%'
但这需要太长时间,因为它需要全表扫描.我们认为全文搜索将能够帮助我们使用contains.
select * from products where contains(barcode, '2345')
但是,似乎包含不支持查找部分包含文本的单词,但只支持单词匹配或前缀.(但在这个例子中我们正在寻找'123456').
我试图使用python的db-api汇编以下SQL语句:
SELECT x FROM myTable WHERE x LIKE 'BEGINNING_OF_STRING%';
Run Code Online (Sandbox Code Playgroud)
其中BEGINNING_OF_STRING应该是一个python var,可以通过DB-API安全地填充.我试过了
beginningOfString = 'abc'
cursor.execute('SELECT x FROM myTable WHERE x LIKE '%s%', beginningOfString)
cursor.execute('SELECT x FROM myTable WHERE x LIKE '%s%%', beginningOfString)
Run Code Online (Sandbox Code Playgroud)
我没有想法; 这样做的正确方法是什么?
我正在使用派生列任务使用CASE WHEN语句更改列数据.但是,我需要能够说..
SQL代码将是:
CASE WHEN Column01 LIKE '%i%' THEN '0' ELSE '1' END
Run Code Online (Sandbox Code Playgroud)
在SSIS表达语言中将是:
[Column01] == "i" ? "0" : "1" (that's for equals i, not, LIKE %i%.
Run Code Online (Sandbox Code Playgroud)
是否可以使用LIKE运算符?
在SQL中,如果要使用通配符执行SELECT,则使用:
SELECT * FROM table_name WHERE field_name LIKE '%value%'
Run Code Online (Sandbox Code Playgroud)
如果您想使用可能值的数组,您可以使用:
SELECT * FROM table_name WHERE field_name IN ('one', 'two', 'three')
Run Code Online (Sandbox Code Playgroud)
但是,如果你想同时使用通配符和数组,你会怎么做?
有一些像:
SELECT * FROM table_name WHERE field_name LIKE IN ('%one', '_two', 'three[abv]')
Run Code Online (Sandbox Code Playgroud) 使用Sequel Pro,我有这两个表:
Table1
Name Year x y
John Smith 2010 10 12
Adam Jones 2010 8 13
John Smith 2011 7 15
Adam Jones 2011 9 14
etc.
Run Code Online (Sandbox Code Playgroud)
和
Table2
Name Year z
Smith John Smith John 2010 27
Jones Adam Jones Adam 2010 25
Smith John Smith John 2011 29
Jones Adam Jones Adam 2011 21
etc.
Run Code Online (Sandbox Code Playgroud)
基本上,表2中的名称仅与姓氏和名字切换相同,然后重复一次.因此表1中的名称在表2的名称中找到("John Smith"在"Smith John Smith John"中找到).我想执行内部联接并将Table2的z值连接到Table1的其他值并得到如下内容:
Name x y z
John Smith 10 12 27
Adam Jones 8 13 25
Run Code Online (Sandbox Code Playgroud)
为此,我运行了这个查询:
Select Table1.*, …Run Code Online (Sandbox Code Playgroud) sql-like ×10
sql ×6
contains ×1
dataflowtask ×1
hibernate ×1
hql ×1
java ×1
join ×1
lucene ×1
mysql ×1
postgresql ×1
python ×1
sql-server ×1
sqlite ×1
ssis ×1