【发布时间】:2020-06-26 04:54:17
【问题描述】:
我想搜索 model_type 列的特定值。但问题是,我无法使用 exactly same 值使用like 或= 查询它。
这是我的表格模型:
| id | model_type | model_id |
|----|-----------------|----------|
| 1 | App\Models\User | 2 |
| 2 | App\Models\Link | 3 |
| 3 | App\Models\Link | 4 |
这里是设置
表架构:latin1model_type 的默认字符集:utf8mb4model_type 的排序规则:utf8mb4_unicode_cimodel_type 的数据类型:varchar(191)
当我尝试使用搜索时
SELECT * FROM models WHERE model_type = "App\Models\Link";
或SELECT * FROM models WHERE model_type like "App\Models\Link";
它返回 0 行。
经过一番挖掘,当我尝试使用这些查询查询具有 \ 的 model_type 值时 SELECT * FROM models WHERE model_type like '%\Link%' 它将返回行,
但是当我尝试 SELECT * FROM models WHERE model_type like '%s\Link%' 时它返回 0 行
我尝试使用COLLATE,结果也是0行。
例如:SELECT * FROM models where model_type = "App\Models\Link" COLLATE utf8mb4_unicode_ci;
【问题讨论】:
-
你尝试转义
\` ? (App\\Models\\Link`)
标签: mysql