php - 如何在多语言json中执行相似搜索?

标签 php mysql

我们已归档以下数据:

{
  "en":"Nokia-130",
  "ar":"\u0646\u0648\u0643\u064a\u0627 130 (2017)",
  "ch":"\u8bfa\u57fa\u4e9a130\uff082017\uff09"
}

我们正在努力实现:

SELECT json_extract(NAME, "$.ar")
FROM products
WHERE json_extract(NAME, "$.ar") LIKE '%\u0646%';

它工作正常并给出结果,但是当我们点击时

SELECT json_extract(NAME, "$.ar")
FROM products
WHERE json_extract(NAME, "$.ar") LIKE '%\u0646\u0648%';

这不起作用。

最佳答案

我无法重现该问题:

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.19    |
+-----------+
1 row in set (0.00 sec)

mysql> DROP TABLE IF EXISTS `products`;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE IF NOT EXISTS `products` (
    ->   `NAME` JSON
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO `products`
    ->   (`NAME`)
    -> VALUES
    ->   ('{
    '>       "en":"Nokia-130",
    '>       "ar":"\u0646\u0648\u0643\u064a\u0627 130 (2017)",
    '>       "ch":"\u8bfa\u57fa\u4e9a130\uff082017\uff09"
    '>     }');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT `NAME` -> "$.ar"
    -> FROM `products`
    -> WHERE `NAME` -> "$.ar" LIKE '%\u0646%';
+----------------------------------------+
| `NAME` -> "$.ar"                       |
+----------------------------------------+
| "u0646u0648u0643u064au0627 130 (2017)" |
+----------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT `NAME` -> "$.ar"
    -> FROM `products`
    -> WHERE `NAME` -> "$.ar" LIKE '%\u0646\u0648%';
+----------------------------------------+
| `NAME` -> "$.ar"                       |
+----------------------------------------+
| "u0646u0648u0643u064au0627 130 (2017)" |
+----------------------------------------+
1 row in set (0.00 sec)

参见db-fiddle .

关于php - 如何在多语言json中执行相似搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45233972/

相关文章:

python - KeyError : u"Migration rango. 0002_auto_20150905_0345 依赖引用不存在的父节点

Python连接到000webhost Web服务器MySQL数据库

php - Drupal 在后台显示来自 python 脚本的数据 :Asynchronous Solution

php - 这个带有插入符号的 PHP 语法是什么,它有什么作用?

mysql - Rails 3 ActiveRecord 从单个表中选择父子递归

php - 连接到 Amazon AWS RDS 上的 MySQL

mysql - SQLSTATE[22007] : Invalid datetime format: 1292 Incorrect datetime value: '2008-03-30 02:56:12'

php - 从 PHP 函数返回 HTML 的最佳实践

php - 使用cakephp获取名称以显示在下拉列表中

php - mysql时间类型显示12 :00 AM as default value