我很难在python中获取一些sql以正确浏览MySQLdb.它是pythons字符串格式化,正在杀死我.
我的sql语句使用带有通配符的LIKE关键字.我在Python中尝试了很多不同的东西.问题是,一旦我让其中一个工作,MySQLdb中的一行代码就是字符串格式.
尝试1:
"SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username LIKE'%% s%'"%(query)
这是不行的.我得到价值错误:
ValueError:索引128处不支持的格式字符'''(0x27)
尝试2:
"SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username LIKE'\ %% s \%'"%(query)
我从尝试1得到了相同的结果.
尝试3:
like ="LIKE'%"+ str(查询)+"%'"totalq ="SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username "+喜欢
这正确地创建了totalq变量,但是现在当我去运行查询时,我从MySQLdb获得错误:
文件"build/bdist.macosx-10.6-universal/egg/MySQLdb/cursors.py",第158行,执行查询=查询%db.literal(args)TypeError:格式字符串的参数不够
尝试4:
like ="LIKE'\%"+ str(查询)+"\%'"totalq ="SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user …
虽然Hive支持积极的查询:ex.
select*from table_name其中column_name 类似'root~%' ;
Hive 不支持负面查询:ex.
select*from table_name其中column_name 不像'root~%' ;
有没有人知道Hive支持的等效解决方案?
所以'真棒文档'LIKE'%doc%'是真的,因为doc是一个子字符串.但是,我希望它是假的,而'真棒医生'或'doc awesome'或'awesome doc awesome'应该是真的.我该怎么办?
我正在使用sqlite,所以我希望我不必使用不可用的东西.
我的问题是关于使用全文.我知道像以%开头的查询从不使用索引:
SELECT * from customer where name like %username%
Run Code Online (Sandbox Code Playgroud)
如果我使用全文来进行此查询可以ı采取更好的性能?SQL Server是否可以为%username%等查询使用全文索引优势?
我正在使用Jquery实现自动完成功能,当我输入名称时,它从数据库中获取记录,存储在db中的记录是大写和小写字母的混合.我编写了一个HQL查询,它以区分大小写的方式获取记录,但我需要记录而不管大小写.这是查询,
List<OrganizationTB> resultList = null;
Query query = session.createQuery("from DataOrganization dataOrg where dataOrg.poolName
like '%"+ poolName +"%'");
resultList = query.list();
Run Code Online (Sandbox Code Playgroud)
例如:如果我有池名称,HRMS数据集,Hrms数据,Hr数据等...如果我输入HR或hr我需要获得所有3条记录,这是我无法做到的.
请帮忙...
可能重复:
使用mysql连接查询?
我想做一个连接,其中一列包含来自另一个表的列的字符串:
SELECT
a.first_name,
b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%a.first_name%'
Run Code Online (Sandbox Code Playgroud)
这可能吗?我正在使用MySQL.当然上面的查询将不起作用,因为LIKE'%a.first_name%'将仅查找字符串a.first_name,而不是列的实际值.
我有一张叫做STUDENT的桌子.在此表中有两列,ID和NAME.我想从这个表中检索名称以'ab'开头并以'k'结尾的所有行.执行此操作的SQL查询是什么?
我有一个包含多个字段的数据库
word_id — INTEGER PRIMARY_KEY
word — TEXT
...
Run Code Online (Sandbox Code Playgroud)
..和~150k行.
由于这是一本字典,我正在'search_string%'使用LIKE 搜索带掩码的单词.它曾经工作得很好,需要15ms才能找到匹配的行.该表具有字段的索引'word'.最近我修改了表(该表的一些字段超出了范围)并发生了一些事情 - 执行查询需要400ms,所以我理解它现在无法使用索引.使用=而不是like的直接查询显示10ms的结果.有人知道这里发生了什么吗?
我知道如何对单个值执行SQL LIKE%查询,如下所示:
SELECT * FROM users WHERE name LIKE %tom%;
Run Code Online (Sandbox Code Playgroud)
但如果我的LIKE的搜索条件来自数组,我该怎么做?例如,假设我们有一个这样的数组:
$words = array("Tom", "Smith", "Larry");
Run Code Online (Sandbox Code Playgroud)
如何执行我的SQL LIKE%来搜索我的数组中的单词,如:
SELECT * FROM users WHERE name LIKE %[each_element_from_my_array]%
Run Code Online (Sandbox Code Playgroud)
没有将整个查询放在foreach循环或其他内容中
编辑:我忘了提到我在cakePHP中使用cakePHP find('all')方法执行此操作,因此使事情变得复杂一点.
谢谢