我的表中有一个字段用于标记某些内容,用空格分隔,目前我正在使用:
SELECT * FROM content WHERE tags LIKE '%$selectedtag%'"
Run Code Online (Sandbox Code Playgroud)
但如果所选标签是大象,它将选择用bigelephant和elephantblah等标记的内容......
如何让它只是选择我想要的东西?
我正在尝试在LIKE子句中使用列和通配符.我期待这个工作:
WHERE COLUMNA LIKE '%'||COLUMNB||'%'
Run Code Online (Sandbox Code Playgroud)
DB2中是否支持此功能?
以下MYSQL语句需要0.577251秒:
SELECT synonym_group FROM synonym WHERE name LIKE '%ak%'
Run Code Online (Sandbox Code Playgroud)
Name是varchar(250)字段.同义词数据库表中目前有356,187条记录.数据:21 MB.索引:23 MB.总大小:45 MB.每行字节数:67.
那么合理的时间是0.577251秒吗?如果没有,那是什么,我应该做什么?我已经阅读过这类问题的几个主题,而我能看到的主要解决方案是使用像sphinx这样的东西.
事实是,我桌子上的几个字段可能是无关紧要的.比方说,如果我将每行的字节数减少一半,通过消除不必要的字段,会使搜索速度提高一倍吗?
提前致谢.
以下是示例查询.
CREATE PROCEDURE GetModel
(
@brandids varchar(100), -- brandid="1,2,3"
@bodystyleid varchar(100) -- bodystyleid="1,2,3"
)
AS
select * from model
where brandid in (@brandids) -- use a UDF to return table for comma delimited string
and bodystyleid in (@bodystyleid)
Run Code Online (Sandbox Code Playgroud)
我的要求是,如果@brandids或@bodystyleid为空,查询应返回该条件的所有行.
请指导我怎么做?还建议如何编写此查询以优化性能.
我需要在Sql命令中插入一个字符串
search.CommandText = "SELECT * FROM Contacts WHERE Name like ' + @person + % + '";
Run Code Online (Sandbox Code Playgroud)
什么是LIKE在命令中使用的正确方法?
我有一个查询.是否有任何内置函数或与MySQL相关的任何其他方法,它将返回包含数据库表字段中的EXACT字的行?我知道使用MySQL LIKE运算符,您可以在列中搜索指定的模式,该模式将字符串值与包含通配符的模式字符串相匹配.但是使用MySQL LIKE子句,它也将返回子字符串条目.
例如.
假设3列值如下:
1. "Take another shot of courage"
2. "The End of This age is Not Yet"
3. "Employers can obtain this wage rate by submitting a request"
Run Code Online (Sandbox Code Playgroud)
我想要检索列值包含确切单词"age"的所有行
如果我们准备这样的查询
SELECT * FROM sometable WHERE somefield LIKE '%age%'
Run Code Online (Sandbox Code Playgroud)
它将返回所有三行.但我的目的只是获得第二排.我们如何实现这一目标?提前致谢.
干杯,
JENSon.
鉴于案文:
"Hello, I'm from Hell",
"Hello, I'm from Ell"
Run Code Online (Sandbox Code Playgroud)
和以下SQL子句:
SELECT * FROM table WHERE text LIKE '%ell%'
Run Code Online (Sandbox Code Playgroud)
我得到上面的两个文本,但我不想得到两个文本,因为我在寻找文本"Ell"而不是"Hell"
如果有人知道我的意思,你能帮助我吗?
提前致谢!
编辑:
更好的例子
就像你想要寻找"大"这个词一样,但它不能成为"更大"或"最大"之类的任何其他词的一部分
我在使用不同的正确查询更改PL/SQL oracle中的查询时遇到问题.当前查询:
SELECT MAX (workzone)
FROM sccd_device_uim_tab
WHERE NAME LIKE 18075009 || '%';
Run Code Online (Sandbox Code Playgroud)
我的客户需要修改查询,因为:
Full table with a % should definitely be avoided.
Run Code Online (Sandbox Code Playgroud)
这个问题有什么解决方案?
提前致谢
从包中添加查询
PROCEDURE sccd_get_impactservice_manual (
in_faultid IN VARCHAR2,
in_deviceid IN VARCHAR2,
in_status IN VARCHAR2,
in_opendate IN DATE,
in_closedate IN DATE,
out_impact_result OUT tcur,
out_count_service OUT NUMBER,
out_workzone OUT VARCHAR2,
p_ret_char OUT VARCHAR2,
p_ret_number OUT NUMBER,
p_ret_msg OUT VARCHAR2
)
IS
BEGIN
SELECT orauser.ossa_get_sto_from_device (in_deviceid)
INTO out_workzone
FROM DUAL;
IF out_workzone IS NULL
THEN
SELECT MAX (workzone) …Run Code Online (Sandbox Code Playgroud) 尝试在这里进行部分字符串匹配,但是LIKE运算符出现了问题.我确定它的语法,但我看不到它
SELECT Name
FROM Table1 a
INNER JOIN Table2 b ON a.Name = b.FullName LIKE '%' + a.Name + '%'
Run Code Online (Sandbox Code Playgroud)
我执行此操作时收到错误消息
消息156,级别15,状态1,行4
关键字'LIKE'附近的语法不正确.
我正在尝试构建一个搜索引擎的Shiny应用程序.我根据搜索关键字返回data.table:
DT <- data.table(field = c("A_B_C","A_C_D","A_D_A","B_A_D","B_C_F","B_D_K"))
DT[field %like% "A|B"]
Run Code Online (Sandbox Code Playgroud)
以上内容返回包含A或B的所有字段.如果我想要A和B:
DT[field %like% "A"][field %like% "B"]
Run Code Online (Sandbox Code Playgroud)
是否有一种语法允许我对任意数量的关键字执行上述操作.就像是:
DT[field %like% "A & B & C"]
Run Code Online (Sandbox Code Playgroud) sql-like ×10
sql ×5
mysql ×4
php ×2
c# ×1
data.table ×1
database ×1
db2 ×1
in-clause ×1
indexing ×1
join ×1
oracle ×1
performance ×1
r ×1
sql-server ×1
t-sql ×1
where-clause ×1
wildcard ×1