mysql表中字段值带有符号怎么匹配?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql表中字段值带有符号怎么匹配?相关的知识,希望对你有一定的参考价值。

一个用名字匹配头像的数据库查询

比如语句 select names from cout 查询出来的names的值关联到照片文件夹的图像文件

但字段值names中包含有类似Wog'Taw这样的名字

包含有这样的Wog与Taw中间的‘这样的符号要怎么写才能匹配到正确的值?

参考技术A select names from cout where names = "Wog'Taw";追问

大哥你好耿直。。Wog'Taw只是个举例。。还有类似什么Le'Jor这样的名字。。。

追答

你说的是模糊查询吧?
模糊查询的话这样写:select names from cout where names like “ %'% ”;
匹配左边任意字符,右边任意字符,中间一个‘。

追问

没有条件。。。就只是要select names from cout这句而已。。但是names字段里面有些包含'有些不包含‘符号。。这样就造成了程序只能读取到不包含’的数据。。现在就是想有什么办法能都读取到。。

追答

如果不加条件的话应该能读取到全部names才是。怎么带'的会读取不到?

怎么让mysql一个表中某个字段的值随着另一个表改变

本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程。

起手先造个实例

这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug:

重启一下实例,加上 debug 参数:

我们来做一两个实验,说明 DBUG 包的作用:

先设置一个简单的调试规则,我们设置了两个调试选项:

    d:开启各个调试点的输出

    O,/tmp/mysqld.trace:将调试结果输出到指定文件

    请点击输入图片描述

    然后我们创建了一张表,来看一下调试的输出结果:

    请点击输入图片描述

    可以看到 create table 的过程中,MySQL 的一些细节操作,比如分配内存 alloc_root 等

    这样看还不够直观,我们增加一些信息:

    请点击输入图片描述

    来看看效果:

    请点击输入图片描述

    可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)

    我们再增加一些有用的信息:

    请点击输入图片描述

    可以看到结果中增加了文件名和行号:

    请点击输入图片描述

    现在我们可以在输出中找一下统计表相关的信息:

    请点击输入图片描述

    可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。

    沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:

    请点击输入图片描述

    请点击输入图片描述

    本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

    这些技术将 MySQL 的不同方向的信息暴露出来,方便大家理解其中机制。

参考技术A 思路有问题。
一个字段可以为计算类型,但它只能随本表其他字段值变化。
要达到你的目标,应从另一个表着手,在其更新后事件中加入代码,当变化后通过sql语句更改本表相关字段本回答被提问者采纳

以上是关于mysql表中字段值带有符号怎么匹配?的主要内容,如果未能解决你的问题,请参考以下文章

根据mysql中其他表中的匹配值更新列

mysql如何查询某字段里两个值相加结果等于已知道的一个数字

mysql--对行(表中数据)的增删改查

MYSQL怎么将表中的A字段值更新B字段值?求sql语句

尝试获取2个字段以匹配第二个工作表中的数据并返回值

怎么让mysql一个表中某个字段的值随着另一个表改变