欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql字段名和關(guān)鍵字沖突的問題

 更新時(shí)間:2023年07月28日 14:31:12   作者:抱起我的貓去旅行  
這篇文章主要介紹了mysql字段名和關(guān)鍵字沖突的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql字段名和關(guān)鍵字沖突

1.用"(`)"將有沖突的字段框起來,鍵盤上1邊上那個(gè)鍵。

例:

SELECT * FROM yun_roleright WHERE right LIKE '%{13}%';

上面sql語(yǔ)句中right字段名與關(guān)鍵字沖突,會(huì)報(bào)錯(cuò),,,應(yīng)改成下面:

SELECT * FROM yun_roleright WHERE `right` LIKE '%{13}%';

mysql關(guān)鍵字沖突導(dǎo)致的sql執(zhí)行錯(cuò)誤

最近出現(xiàn)了一個(gè)很有意思的情況

我一共有三個(gè)數(shù)據(jù)庫(kù),開發(fā),測(cè)試,正式,

分別放置在不同的服務(wù)器上

都是mysql數(shù)據(jù)庫(kù)

這個(gè)時(shí)候出現(xiàn)了一個(gè)有意思的問題

我的sql如下

SELECT count(0) FROM sys_log  WHERE system = 'system'

在開發(fā)和測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行此sql,沒有問題

但是在正式環(huán)境的數(shù)據(jù)庫(kù)上執(zhí)行此sql,就會(huì)報(bào)如下錯(cuò)誤

在這里插入圖片描述

納悶了半天,確定就是關(guān)鍵字的問題

但是比對(duì)了三個(gè)數(shù)據(jù)庫(kù),確實(shí)又沒找到不同點(diǎn),問大佬,大佬太忙,也沒細(xì)究

解決辦法

方案1:修改字段名(推薦)

注意:但是千萬(wàn)不要用sql語(yǔ)句去改,因?yàn)檎Z(yǔ)句中含有關(guān)鍵字,所以sql是不會(huì)執(zhí)行成功的,所以只能去數(shù)據(jù)庫(kù)管理工具中修改

ALTER table sys_log change system system1 varchar(255) CHARSET utf8 COLLATE utf8_general_ci NULL COMMENT '系統(tǒng)'

【修改字段的名稱】

語(yǔ)法:
alter table <表名> change <字段名> <字段新名稱> <字段的類型>。

方案2:修改執(zhí)行sql

SELECT count(0) FROM sys_log s  WHERE s.system = 'system'

或者

SELECT count(0) FROM sys_log  WHERE `system` = 'system'

其他相關(guān)

注意:當(dāng)出現(xiàn)關(guān)鍵字的時(shí)候,然后業(yè)務(wù)層使用的sql借助了mybatis-plus框架寫的,如

  public PageInfo<SysAuditLogDTO> selectAuditLog(ConditionDTO conditionDTO, Integer pageNum, Integer pageSize) {
        LambdaQueryWrapper<SysLogEntity> wrapper = Wrappers.<SysLogEntity>lambdaQuery()
                .orderByDesc(SysLogEntity::getCreateTime);
        if (StrUtil.isNotEmpty(conditionDTO.getSystem())) {
            wrapper.eq(SysLogEntity::getSystem, conditionDTO.getSystem());
        }
        if (conditionDTO.getStart() != null) {
            wrapper.ge(SysLogEntity::getCreateTime, conditionDTO.getStart());
        }
        if (conditionDTO.getFinish() != null) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(conditionDTO.getFinish());
            calendar.add(Calendar.DATE, 1);
            wrapper.le(SysLogEntity::getCreateTime, calendar.getTime());
        }
        Page<SysLogEntity> page = PageHelper.startPage(pageNum, pageSize).doSelectPage(() -> list(wrapper));
        return auditLogMapper.toDto(page.toPageInfo());
    }
//注:PageHelper是內(nèi)部的一個(gè)工具類,對(duì)數(shù)據(jù)進(jìn)行分頁(yè)處理

有兩種辦法:

方案一:在xml文件中寫sql

業(yè)務(wù)層調(diào)用:(中間省略了dao)

    public PageInfo<SysLogEntity > selectLog(ConditionDTO conditionDTO, Integer pageNum, Integer pageSize) {
        Page<SysLogEntity> page = PageHelper.startPage(pageNum, pageSize).doSelectPage(() -> sysLogDao.sysAuditLogListByQueryConditions(conditionDTO));
        return auditLogMapper.toDto(page.toPageInfo());
    }

mapper.xml文件

    <insert id="addOne">
        insert into sys_log (id, `system`)
        values (#{SysLogEntity.id},#{SysLogEntity.system});
    </insert>

方案二:實(shí)體類@TableField中添加 ``(推薦)

這樣就支持mybatis-plus框架寫法

@Data
@TableName("sys_log")
public class SysLogEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 系統(tǒng)
     */
    @TableField("`SYSTEM`")
    private String system;
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL存儲(chǔ)毫秒數(shù)據(jù)的方法

    MySQL存儲(chǔ)毫秒數(shù)據(jù)的方法

    MySQL中沒有可以直接存儲(chǔ)毫秒數(shù)據(jù)的數(shù)據(jù)類型,但是不過MySQL卻能識(shí)別時(shí)間中的毫秒部分。這篇文章主要介紹了MySQL存儲(chǔ)毫秒數(shù)據(jù)的方法,需要的朋友可以參考下
    2014-06-06
  • MySQL 全文檢索的使用示例

    MySQL 全文檢索的使用示例

    全文檢索是指計(jì)算機(jī)索引程序通過掃描文章中的每一個(gè)詞,對(duì)每一個(gè)詞建立一個(gè)索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置,當(dāng)用戶查詢時(shí),檢索程序就根據(jù)事先建立的索引進(jìn)行查找,并將查找的結(jié)果反饋給用戶的檢索方式。這個(gè)過程類似于通過字典中的檢索字表查字的過程。
    2021-06-06
  • 超詳細(xì)匯總21個(gè)值得收藏的mysql優(yōu)化實(shí)踐

    超詳細(xì)匯總21個(gè)值得收藏的mysql優(yōu)化實(shí)踐

    這篇文章主要分享的是超詳細(xì)匯總21個(gè)值得收藏的mysql優(yōu)化實(shí)踐,對(duì)正在學(xué)習(xí)的同學(xué)有一定的參考價(jià)值,需要的同學(xué)可以參考一下
    2022-01-01
  • linux Xtrabackup安裝及使用方法

    linux Xtrabackup安裝及使用方法

    Xtrabackup是一個(gè)對(duì)InnoDB做數(shù)據(jù)備份的工具,支持在線熱備份(備份時(shí)不影響數(shù)據(jù)讀寫),是商業(yè)備份工具InnoDB Hotbackup的一個(gè)很好的替代品
    2013-04-04
  • 一文詳解MYSQL最樸素的監(jiān)控方式

    一文詳解MYSQL最樸素的監(jiān)控方式

    對(duì)于當(dāng)前數(shù)據(jù)庫(kù)的監(jiān)控方式有很多,分為數(shù)據(jù)庫(kù)自帶、商用、開源三大類,每一種都有各自的特色,那我們今天就介紹一下完全采用mysql自有方式采集獲取監(jiān)控?cái)?shù)據(jù),在單體下達(dá)到最快速、方便、損耗最小,感興趣的同學(xué)可以借鑒閱讀
    2023-05-05
  • 在Windows環(huán)境下安裝MySQL 的教程圖解

    在Windows環(huán)境下安裝MySQL 的教程圖解

    這篇文章主要介紹了在Windows環(huán)境下安裝MySQL 的教程圖解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • MySQL連接及基本信息查看命令匯總

    MySQL連接及基本信息查看命令匯總

    這篇文章主要針對(duì)MySQL連接及基本信息查看命令進(jìn)行了詳細(xì)匯總,感興趣的小伙伴們可以參考一下
    2016-02-02
  • mysql 8.0.19 安裝配置方法圖文教程

    mysql 8.0.19 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.19 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 提升MongoDB性能的方法

    提升MongoDB性能的方法

    在本篇文章中我們給大家總結(jié)了提升MongoDB性能的方法以及相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-09-09
  • MySQL詳細(xì)講解多表關(guān)聯(lián)查詢

    MySQL詳細(xì)講解多表關(guān)聯(lián)查詢

    在數(shù)據(jù)庫(kù)的設(shè)計(jì)中, 我們通常都是會(huì)有很多張表 , 通過表與表之間的關(guān)系建立我們想要的數(shù)據(jù)關(guān)系, 所以在多張表的前提下, 多表的關(guān)聯(lián)查詢就尤為重要
    2022-04-04

最新評(píng)論