在Postgresql 8中为什么这样可以
select * from prod where code like '1%'
select * from prod where code like '%1'
Run Code Online (Sandbox Code Playgroud)
但这会返回0行(有代码以数字1开头/结尾)
select * from prod where code like '1%1'
Run Code Online (Sandbox Code Playgroud)
更新
这发生在我目前的安装中:
# psql --version
psql (PostgreSQL) 8.3.7
create table a(code char(10));
CREATE TABLE
db=# insert into a values('111');
INSERT 0 1
db=# select * from a where code like '1%';
code
------------
111
(1 row)
db=# select * from a where code like '%1';
code
------
(0 rows)
db=# select * from …Run Code Online (Sandbox Code Playgroud) 我可以在mysql客户端中创建一个具有旧表自动注册状态的新表吗?
我认为,这ALTER TABLE new_table_name AUTO_INCREMENT=@my_autoincr_iment有助于我,但这种结构必须使用恒定的价值.我不想使用困难的脚本.
实际上,我使用此方法显示搜索请求的相似单词.
$query = "SELECT * FROM searches WHERE Query LIKE '%$search%' ORDER BY Query";
Run Code Online (Sandbox Code Playgroud)
如果有人搜索"nelly",它会在数据库中查找类似的单词
"nelly furtado,nelly ft.kelly"......
但我不想出现搜索过的单词..
例如:你搜索过nelly - 试试这个:nelly,nelly furtado,nelly ft.,
粗体词不应再出现了,因为它是搜索过的单词..是否有一种方法可以使用MATCH AGAINST?谢谢!
在性能方面,like运算符在应用于具有多个占位符的字符串时的行为如何?
例如:
select A from table_A where A like 'A%'
Run Code Online (Sandbox Code Playgroud)
需要相同的时间来选择
select A from table_A where A like 'A%%'
Run Code Online (Sandbox Code Playgroud)
???
是否可以在一个查询中将多个SQL LIKE通配符串起来 - 这样的话?
LIKE '% aaaa %' AND LIKE '% bbbb %'
Run Code Online (Sandbox Code Playgroud)
目的是找到包含两张外卡但没有特定顺序的记录.
是否有任何转换方式
$term = $_GET['p'];
$stmt = $dbh->prepare("
SELECT *
FROM posts
WHERE heading LIKE '%$term%'
OR full_text LIKE '%$term%'
LIMIT 0 , 30
");
$stmt->execute();
$answer = $stmt->fetch(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
INTO之类的东西
$term = "'%" . $_GET['p'] . "%'";
$stmt = $dbh->prepare("
SELECT *
FROM posts
WHERE heading LIKE :term
OR full_text LIKE :term
LIMIT 0 , 30
");
$stmt->bindParam(":term", $term);
$stmt->execute();
$answer = $stmt->fetch(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
这样我可以使用bindParam(":term", $term);而不是'%$term%'在查询中?
我已经在bindParam中查看了这些使用LIKE的MySQL PDO查询和 使用bindParam的Mysql,PDO-Like语句.但他们没有给我任何正确的答案.
我有一个忽略WHERE函数部分的SQL查询.
SELECT col1, col2, col3, col4
FROM table
WHERE col1 = 'yes'
AND col2 = 'no'
AND col3 || col4
LIKE '%maybe%'
Run Code Online (Sandbox Code Playgroud)
如果没有最后一个AND函数,它会返回正确的行,但是使用LIKE函数会返回带有"no"的行col1.
新手到SQL.请帮助.
对于多种模式,我需要计算其中一个字段中具有模式的记录数.我知道如何为一个模式执行此操作,但是当子查询中存在多个模式时,如何获取每个模式的计数.我正在使用Oracle.我将尝试用一个例子来解释.
SELECT count(*) FROM TableA
WHERE
TableA.comment LIKE '%world%';
Run Code Online (Sandbox Code Playgroud)
现在,此代码将返回TableA.comment字段中任何位置具有"world"的记录数.我的情况是,我有一个第二个查询,它返回了一个像'world'这样的模式列表.我如何获得每个模式的计数?
我的最终结果应该是2列,第一列模式,第二列count_of_pattern.
我有一张数据表.在该表中有一个名为"TypeTag"的列,可以是11位数字或11位数字"_",后跟3个数字.含义:'XXXXXXXXXXX'或'XXXXXXXXXXX_XXX'.
我只需要第一部分 - 所以我写了一个查询:
SELECT
(CASE
WHEN TypeTag LIKE '%_%' THEN LEFT(TypeTag, LENGTH(TypeTag) - 4)
ELSE TypeTag
END)
FROM `DailyReport`
WHERE DATE>='2016-07-01'
Run Code Online (Sandbox Code Playgroud)
问题是所有值都返回而没有最后4个字符,情况似乎不起作用(或者LIKE不起作用),因为所有记录都进入第一个"WHEN"而不是"ELSE".
例如,如果我的原始数据集是:
56329856721
56329856722_502
56329856723
56329856724
56329856725_633
56329856726
Run Code Online (Sandbox Code Playgroud)
然后我得到的回应是:
5632985
56329856722
5632985
5632985
56329856725
5632985
Run Code Online (Sandbox Code Playgroud)
我正在使用MySQL(特别是SQLyog).有谁知道我的查询有什么问题?或者如何以我得到所需结果的方式写出条件?
谢谢你们!!
我正在使用最新的Laravel 5.4
我试图通过名称进行简单的查询来搜索用户.为MySQL编写的查询如下所示:
SELECT *
FROM users
WHERE upper(name) LIKE '%FOO%';
Run Code Online (Sandbox Code Playgroud)
我正试图让它与Eloquent合作.我尝试但失败的事情:
User::where('upper(name)', 'LIKE', '%FOO%')->get()
DB::table('users')->where('upper(name)', 'LIKE', '%FOO%')->get()
两者都失败并出现以下错误:
照亮\数据库\ QueryException与消息'SQLSTATE [42S22]:柱未找到:1054未知列'上(名)'在'where子句'(SQL:SELECT*FROM
users其中upper(name)LIKE%FOO%)'
查询似乎失败了,因为Eloquent upper(email)用反引号("`","`")包装 语句.有没有办法绕过这个问题或者我是否必须使用特定的雄辩函数将列转换为大写,小写等?
sql-like ×10
mysql ×5
sql ×3
php ×2
case ×1
create-table ×1
eloquent ×1
get ×1
laravel ×1
laravel-5 ×1
oracle ×1
pdo ×1
postgresql ×1
sql-server ×1
subquery ×1
where ×1
where-clause ×1