获取“室” 的位置
mysql 数据库
select id, name ,charindex('诊', zs )  from tab_zs order by zs
这个代码报错误
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('诊', zs )  from tab_zs order by zs' at line 1
(0 ms taken)
select charindex('%qq%','dfsqqdfg') select CHARINDEX('SQL', 'Microsoft SQL Server')这2个代码执行都报错误 什么原因
我最终的目的是 想给诊室排序 
select id,name, zs from tab_zs where  id in ('1','2','3','5') order by right (zs,'8')
将 “8” 该为动态的就可以了

解决方案 »

  1.   

    select id, name ,instr(zx,'诊') from tab_zs order by zs
      

  2.   

     charindex 是SQL SERVER中的。
    MYSQL中用LOCATE函数或者INSTR()
    mysql> SELECT INSTR('foobarbar', 'bar');
            -> 4
    mysql> SELECT INSTR('xbar', 'foobar');
            -> 0
    mysql> SELECT LOCATE('bar', 'foobarbar');
            -> 4
    mysql> SELECT LOCATE('xbar', 'foobar');
            -> 0
    mysql> SELECT LOCATE('bar', 'foobarbar', 5);
            -> 7
      

  3.   

    charindex是sql server函数,mysql是不支持的。
    应修改为用instr()函数
    select id,name,instr(zx,'诊') from 
    tab_zs order by zs
      

  4.   

    小函数根据需求和应用,google百度一搜也能知道,
    新手,受教了
      

  5.   

    INSTR(str,substr) 
    返回字符串 str 中子字符串的第一个出现位置。这和LOCATE()的双参数形式相同,除非参数的顺序被颠倒。