Mysql 一個欄位定義成int型別,查詢時傳入String,會擷取字串
表定義:
CREATE TABLE `ids` (
id int(11) not null auto_increment,
PRIMARY KEY (id)
);
表中存在一些IDs: 111, 112, 113, 114 等.
查詢:
SELECT * FROM `ids` WHERE id = '112abcdefg'
Msql會將sql處理成:
SELECT * FROM `ids` WHERE id = '112'
個人理解 Mysql會將從左到右的第一個非數值開始,將後面的字串轉成0,在和數值型別相加。(112 + 0【abcdefg】)解決方案:
1、程式碼層面:直接在java程式碼中限制不能傳入字串,如果是字串直接返回null。
2、資料庫層面:將id轉成字元型別。
2.1:
WHERE CAST(id AS CHAR(12)) = '112abcdefg'
2.2:
SELECT * FROM `ids` WHERE concat(id) = '112abcdefg';
相關推薦
Mysql 一個欄位定義成int型別,查詢時傳入String,會擷取字串
表定義: CREATE TABLE `ids` ( id int(11) not null auto_increment, PRIMARY KEY (id) );表中存在一些IDs: 111, 112, 113, 114 等. 查詢: SELECT
oracle將一個欄位拆分成多個值(regexp_substr函式)
例: select regexp_substr(p.attributename, '[^,]+',1,level) c1 from tablename p connect by level &l
將表中一個欄位拆分成多列 oracle db2欄位拆分
--oracle 資料庫拆分辦法 WITH TT(bbbh, USER_, sjly) AS (SELECT 00 bbbh, '' USER_, 'a^b^c' || '^' sjly from dual UNION ALL SELECT bbbh,
關於springmvc怎麼自動把前臺string型別日期欄位轉換成date型別
關於springmvc怎麼把前臺string型別日期欄位轉換成date型別欄位,小狼想了好久,閱讀spring原始碼,發現一個很好玩的註解@DateTimeFormat(pattern="yyyy-MM-dd") 對,就是他,小狼是這麼使用的 @Controller pu
mysql一個欄位多個值關聯另一張表
A表的id欄位是以'1,2,3,4,5'...這樣的形式存的,它關聯字典表B的id欄位,此時需求是要查出name SQL: SELECT a.id, ( SELECT GRO
mysql如何將一個欄位多個型別串成一個字串?
結論 先說結論,可以使用group_concat group by的組合實現多行變一行,將一個欄位的多個型別串成一個欄位 需求: 如題,一個欄位如電影類別,一部電影可以是多個類別,如喜劇、動作片等,其形式可以是這樣的1::Toy Story (1995)::Animation
mysql將多個欄位(列)合併成一個欄位(一列)
一:sql語句SELECT declare_type_id,support_model,project_name,CONCAT(declare_type_id,support_model,project_name) from gf_index;二:結果
c/vc/c++ 將mysql二進位制欄位(longblob型別)讀出來儲存成檔案
最後的寫檔案操作,用的是cfile,記得選擇要支援mfc #include "StdAfx.h" #include <afxwin.h> #include <stdio.h> #include "winsock2.h" #pragma comm
MySQL將一個欄位中以逗號分隔的取出來形成新的欄位
1例如:要把如圖1的欄位拆分圖2 select account_id, substring_index(substring_index(a.related_shop_ids,',' ,b.help_topic_id+1),',',-1) shopid
Oracle與mysql的欄位型別整理
Oralce的欄位型別整理如下: Mysql的欄位型別整理如下: 最後面一欄是對應JAVA的基本型別。希望對初學者有用,初學者在學習JAVA的時候,不知道怎麼把JAVA的物件指向到ORALCE或者MYSQL的欄位中,通過這個表格 可以很清楚的瞭解到,物件對映成資
mysql查詢某一個欄位是否包含中文字元
https://www.cnblogs.com/chase-wind/p/6628162.html ********************************************** 在使用mysql時候,某些欄位會儲存中文字元,或是包含中文字元的串,查詢出來的方法是:
mysql插入一個欄位並填充為制定欄位的拼音
有的時候會用到 比如我在前臺去除資料庫一個列表 為北京,然後用這個地名指向北京的特產 url用漢字不好的,所以要用全拼 直接在mysql插入全拼 -- 建立漢字拼音對照表 CREATE TABLE IF NOT EXISTS `t_base_pinyin` ( `pin_yin_`
MySQL判斷一個欄位不包含中文
中文=2個位元組,英文或數字=1個位元組,因此我們用mysql中兩個函式比較位元組和字元的長度是否相等來判斷是否包含中文 select * from user where CHAR_LENGTH(name)=LENGTH(name) 如果想過濾掉空字串或限制下長度
mysql交換對調兩條記錄的某一個欄位
在對資料庫的資料在前端進行展示列表的時候,經常有這麼一個需求,就是將已經排序的列表進行調整順序,比如 現在想把id為8的資料, 向下移一位,也就是和id為11的sort欄位進行對調 第一種方式 這個一般來說是把兩條資料都查出來, user1.se
Mysql中的varchar型別轉換成int型別
Mysql中的varchar型別轉換成int型別 1.實戰案例 1.1 student表結構 mysql> desc student; +----------+-------------+----
Mysql 兩個欄位合成一個欄位顯示
在工作中,有時會產生需要合併兩個欄位的情況使用下面都可以: CONCAT(str1,str2,...) CONCAT_WS(separator,str1,str2,...) 1、CONCAT(str1,str2,...) SELECT floorNo,unit,CON
Mysql 升級到5.7修改欄位報錯 datetime 型別報錯
原因是Mysql5.7以上版本不支援無效日期時間欄位,例如 0000-00-00 00:00:00; 解決方法有兩種: 1:把date 或 datetime 型別值為 0000-00-00 的欄位,改成 1970-01-01 2:修改欄位預設值為空 程式碼示例: ALTER TA
springboot +JPA自定義查詢返回部分欄位的返回值型別,用Integer型別作為模糊查詢的條件
今天遇到一個問題記錄下來。 使用的是springboot 2.1.1 jpa連線MySQL資料庫 資料庫表: 我想通過sid的模糊查詢來生成下拉列表。 開始想用jpa提供的一種方法名稱查詢,於是在dao中定義了public List findBySidLike(Integer sid) 方
MySQL 實現一個欄位賦值給另一個欄位
1.將同一個表中的一個欄位的值複製給另一個欄位 UPDATE t_user SET signed_time = create_time 12 2.將同一個表中兩個型別一樣的欄位的值互換 UPDATE t_user u1, t_user u2 SET u1.signed_time =
sqlserver 將一個欄位下的多行語句合併成一條資料
select 名稱 = ( stuff( (select ',' + CAST(欄位名AS VARCHAR) from 表名 where 條件 for xml path('')), 1, 1,