【问题标题】:Using mysql variable in query to run a like query在查询中使用 mysql 变量来运行类似查询
【发布时间】:2015-01-20 13:07:30
【问题描述】:

我正在尝试这个:

SET @query1 =  'star';
   SELECT *
   FROM businesses
   WHERE business_name LIKE @query1

但我收到以下错误:

错误代码:1267 非法混合排序规则 (utf8_unicode_ci,IMPLICIT) 和 (utf8_general_ci,IMPLICIT) 用于“like”操作

我做错了什么?

【问题讨论】:

  • 你能告诉你你的mysql版本吗。
  • 我刚刚签入了 phpmyadmin,它正在工作。
  • @S.M.Mohiuddin - 服务器版本:5.5.40-cll
  • @AmitGarg - 我正在尝试在 phpMyAdmin 中使用它。它不工作
  • This Link帮你

标签: mysql


【解决方案1】:

很奇怪.. 但您可以将表格转换为该字符集,例如:

ALTER TABLE mydb.businesses  DEFAULT COLLATE utf8_unicode_ci;
ALTER TABLE mydb.businesses CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

【讨论】:

    【解决方案2】:

    只需指定排序规则

    SELECT * FROM businesses WHERE business_name LIKE @query1 COLLATE utf8_unicode_ci
    

    要获得更永久的修复,您需要更改服务器的排序规则以与数据库兼容,反之亦然。我在排序规则方面没有太多经验,因此您需要做一些阅读。

    Docs

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 2013-07-26
      • 2013-05-15
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      相关资源
      最近更新 更多