MYSQL中使用LIKE進行字串連線失效

2022-04-12 08:02:36 字數 633 閱讀 9446

參考資料:mysql-中文檢索匹配與正規表示式

select menu_id,menu_captions from bsdb.menulist a where a.menu_id like (menuid+'_

');

上面的語句直接這樣執行,可以發揮like的萬用字元的作用,但是如果將這個語句置於儲存過程中就會失效;導致語句成這樣的效果:

select menu_id,menu_captions from bsdb.menulist a where a.menu_id like menuid;

而非我想要的匹配兩位字元;使用正規表示式也不行,因為正規表示式太花俏,太複雜,導致篩選出3個字元的或者是其中乙個字元匹配的結果。

select id,title,name from achech_com.news where

binary ucase(title) like concat('

%',ucase('

a'),'

%')

重點是看到的是concat函式,這個函式時字串連線函式。

原來like匹配的失效可能是在mysql中,字串的連線不能通過簡單的『+』來連線,應該考函式來連線,如cancat函式。

myBatis中使用like進行查詢

1.使用mybatis中提供的方法 oracle與mysql通用 select from t user where 1 1 and name like 2.如果是mysql,則使用mysql自身的方法 concat關鍵字是 將多個字串進行拼接 select from t user where nam...

mysql 中使用 LIKE ,正則

like 表示任何字元 null除外 出現任意次 0 無窮個 同時還必須注意大小寫問題。表示任何字元出現1 不能多也不能少 次 正則模式 匹配任意單個字元,包括換行 m m,m,n n mysql select abcdefg regexp a mysql select abcdef regexp ...

在sp executesql中使用like字句

在sp executesql中可以執行引數化的sql,但是如果sql中有like,那麼一般都要拼字串,下面的例子把兩者結合了起來,既有拼sql的靈活性,又有引數化sql的優點。declare likesql nvarchar 32 定義乙個like變數,如果是儲存過程,此處可以儲存過程的引數 set...