sql'='运算符返回意外结果

时间:2016-07-21 06:23:16

标签: php sql

这是我的查询

SELECT * 
FROM  `tx_branddata_info` 
WHERE  `brand_title` =  'BOEHLER'
LIMIT 0 , 30

它返回

enter image description here

但是预期结果是第一个。除了更改排序规则之外,任何人都有任何解决方案。

3 个答案:

答案 0 :(得分:2)

似乎brand_title遵循 latin1_german2_ci 规则(http://dev.mysql.com/doc/refman/5.7/en/charset-we-sets.html):

Ä = AE
Ö = OE
Ü = UE
ß = ss

检查字段字符集,如果可以的话,更改为imho,utf8mb4。

希望这有帮助。

答案 1 :(得分:1)

SELECT * 
FROM  `tx_branddata_info` 
WHERE  BINARY  `brand_title` = 'BOEHLER'
LIMIT 0 , 30

答案 2 :(得分:1)

我的表格排序是latin1_german2_ci。其规则如下:

ViewGroup parent;
int position;

for(int i = 0; i < parent.getChildCount(); ++i) {
    int currentViewId = parent.getChildAt(i).getId();

    if(currentViewId == wantendViewId) {
        position = i;
    }
}

所以我改变了查询如下

$(function(){
  $("#buttonID").on("click",function(e){
          set fso = ActiveXObject("Scripting.FileSystemObject");   
          set s = fso.CreateTextFile("C:\test.txt", True);

           $.each($("#DropDownID"),function(i,item){
               s.writeline($(this).text/val());
           });
   });
});

现在它正常工作,因为Ä = AE Ö = OE Ü = UE ß = ss 正在进行逐字符比较。