admin管理员组

文章数量:1547451

关于

MySQL字符串函数的搜索结果

问题

如何测试字符串是否为JSON??mysql

我有一个简单的AJAX调用,服务器将返回包含有用数据的JSON字符串或PHP函数产生的错误消息字符串mysql_error()。如何测试此数据是JSON字符串还是错误消息。

最好使用一个称为的函数isJSON,...

保持可爱mmm

2020-05-17 09:14:23

2 浏览量

回答数 1

问题

如何测试字符串是否为JSON??mysql

我有一个简单的AJAX调用,服务器将返回包含有用数据的JSON字符串或PHP函数产生的错误消息字符串mysql_error()。如何测试此数据是JSON字符串还是错误消息。

最好使用一个称为的函数isJSON,...

保持可爱mmm

2020-05-17 09:37:21

0 浏览量

回答数 1

回答

与常规的脚本语言类似, MySQL 也具有一套对字符、单词以及特殊符号的使用规定, MySQL 通过执行 SQL 脚本来完成对数据库的操作, 该脚本由一条或多条MySQL语句(SQL语句 + 扩展语句)组成, 保存时脚本文件后缀名一般为 .sql。在控制台下, MySQL 客户端也可以对语句进行单句的执行而不用保存为.sql文件。

标识符 标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线。

对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linux\unix 系统来说, 这些标识符大小写是敏感的。

关键字: MySQL的关键字众多, 这里不一一列出, 在学习中学习。 这些关键字有自己特定的含义, 尽量避免作为标识符。

语句: MySQL语句是组成MySQL脚本的基本单位, 每条语句能完成特定的操作, 他是由 SQL 标准语句 + MySQL 扩展语句组成。

函数: MySQL函数用来实现数据库操作的一些高级功能, 这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。

你的答案

2020-05-06 16:37:42

0 浏览量

回答数 0

问题

MySQL可以替换多个字符吗?

?mysql

我正在尝试替换MySQL字段中的一堆字符。我知道REPLACE函数,但是一次只能替换一个字符串。我在手册中看不到任何适当的功能。

我可以一次替换或删除多个字符串吗?例如,我需要用破折号替换空格并删...

保持可爱mmm

2020-05-17 12:22:13

0 浏览量

回答数 1

回答

字符串 + 字符串,则直接进行拼接。若某字段为NULL,则计算结果为NULL。 SQL Server中没有concat函数(SQL Server 2012已新增concat函数)。oracle和mysql中虽然都有concat,但是oracle中只能拼接2个字符串,所以建议用||的方式;mysql中的concat则可以拼接多个字符串。 扩展资料: 在SQL Server中的“+”号除了能够进行字符串拼接外,还可以进行数字运算,在进行字符串拼接时要小心使用。 1、sqlserver:select '123'+'456'; 2、oracle:select '123'||'456' from dual; 或select concat('123','456') from dual; 3、mysql: select concat('123','456'); 参考资料:结构化查询语言-百度

答案来源于网络

养狐狸的猫

2019-12-02 02:15:16

0 浏览量

回答数 0

问题

PHP MySQL 关于文章字段内容分页的几个小问题

文章内容字段用什么类型呢?1:文章字数可能很长,没人知道会有多长,到底MySQL能保存多少字?2:太长了post提交能行吗?3:写文章是不是还是要限制一个长度的呢?4:不想要被限制。当文章内容太长了就要进行分页分页怎么做呢?1:使用sql语...

蛮大人123

2019-12-01 19:49:27

1442 浏览量

回答数 1

回答

没考虑hashvalue越界。楼主可以试下稍微长一点的字符串,该函数应该返回的都是0,个人建议是把*seed计算操作改成^seed等位操作。

另外,有个细节楼主要注意,length和char_length这两个函数对多字节字符集,返回值是不一样的。是的长点的字符串都是0我发现了这个问题后来把与运算直接改成取模了因为算法方面我不是很懂我是百度别人C的算法修改成mysql可用的函数的谢谢您的指点但是修改函数之后依然不能成功的建立分区表请问还有哪些方面需要修改呢

不建议用mysql

自定义函数,建议直接分表,然后在程序里先计算出字符串的hash值。回复

@Hccake:用分区的方法,在where条件里也得加上分区的字段,不然会多分区扫描的。谢谢您的建议但是我们在讨论过程中分表建议被否决了因为这个需要改动代码而公司目前三个项目都需要做优化动作比较大经理目前希望我可以先通过物理分区暂时解决这个问题请问我要如何修改才可以使用自定义函数进行分区呢

爱吃鱼的程序员

2020-06-08 20:18:26

0 浏览量

回答数 0

问题

MySQL选择题 返回字符串长度的函数是( )

返回字符串长度的函数是( )

A、len()

B、length()

C、left()

D、long()...

pandacats

2019-12-23 21:13:30

0 浏览量

回答数 1

问题

MySQL 选择题 返回字符串长度的函数是( )

返回字符串长度的函数是( )

A、len()

B、length()

C、left()

D、long()...

pandacats

2019-12-23 20:04:18

0 浏览量

回答数 1

问题

如何从MySQL中的字符串仅获取数字??mysql

我有一些包含字母数字值的字符串输出。我只想从该字符串中获取数字。如何通过查询获取?我可以使用哪个MySql函数?

我的查询就像:

select DISTINCT SUBSTRING(referr...

保持可爱mmm

2020-05-17 14:17:48

1 浏览量

回答数 1

问题

用于MySQL的转义字符串Python

我使用Python和MySQLdb下载网页并将其存储到数据库中。我的问题是我无法在数据库中保存复杂的字符串,因为它们无法正确转义。

Python中是否有一个我可以用来为MySQL转义字符串的函数?我尝试使用...

保持可爱mmm

2020-05-11 16:44:28

0 浏览量

回答数 1

问题

mysql有没有函数可以获取字串substr 在字符串str最后一次出现的位置?

网上找了一些,貌似都没有查找最后一个字符位置的函数,发现都是LOCATE(),POSITION(substr IN str),INSTR(str,substr)这样查第一次出现的函数,为什么没有lastindexOf()这样的函数?...

小旋风柴进

2019-12-01 20:13:29

970 浏览量

回答数 1

问题

mysql_real_escape_string VS加上斜线?mysql

有人可以从PHP手册中了解这两个函数之间的区别吗?

addslashes:返回一个字符串,在数据库查询等中需要加引号的字符之前带有反斜杠。这些字符是单引号(')...

保持可爱mmm

2020-05-17 13:52:21

2 浏览量

回答数 1

问题

HybridDB for MySQL中支持的MySQL函数有什么

HybridDB for MySQL目前支持在SELECT查询语句中使用如下的SQL函数:

注:1.若无特殊说明,以下函数均为

MySQL v5.6中的函数定义)

注:2...

云栖大讲堂

2019-12-01 21:27:41

1433 浏览量

回答数 0

问题

PHP MySQL 创建数据库和表

数据库存有一个或多个表。

创建数据库

CREATE DATABASE 语句用于在 MySQL 中创建数据库。

语法

CREATE DATABASE database_name

为了让 PHP 执行上...

ethnicity

2019-12-01 22:08:21

8427 浏览量

回答数 0

问题

实体框架6的动态MySQL数据库连接

我希望将动态连接字符串传递给实体框架上下文。我有150多个相同的模式(每个帐户一个),我想这样选择连接:

ApplicationDbContext db = new Appl...

保持可爱mmm

2020-05-17 19:06:50

0 浏览量

回答数 1

回答

是mysql的话,你把name字段的空格忽略掉再查询,mysql里有一个很强大的trim函数,能消除字符串首尾部的空格,还可以消除我们指定的任意字符。SELECT * FROM table WHERE TRIM( REPLACE(name,' ','' )) LIKE '%OsChina%' ;

落地花开啦

2019-12-02 01:46:27

0 浏览量

回答数 0

回答

转义字符串意味着减少该字符串中使用的引号(和其他字符)的歧义。例如,定义字符串时,通常将其用双引号或单引号引起来:

"Hello World." 但是,如果我的字符串中包含双引号怎么办?

"Hello "World."" 现在我有歧义-解释器不知道我的字符串在哪里结束。如果要保留双引号,则有两种选择。我可以在字符串周围使用单引号:

'Hello "World."' 或者,我可以避免引用:

"Hello "World."" 任何以斜杠开头的引号均会转义,并应理解为字符串值的一部分。

当涉及查询时,MySQL会监视某些关键字,这些关键字我们不能在查询中使用而不会引起混淆。假设我们有一个值表,其中一列名为“选择”,我们想选择该值:

SELECT select FROM myTable 现在,我们在查询中引入了一些歧义。在我们的查询中,我们可以通过使用反引号来减少歧义:

SELECT select FROM myTable 这消除了我们在选择字段名称时缺乏判断力而引起的混乱。

只需将值传递给即可为您解决很多问题mysql_real_escape_string()。在下面的示例中,您可以看到我们正在通过此函数传递用户提交的数据,以确保它不会对我们的查询造成任何问题:

// Query $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'", mysql_real_escape_string($user), mysql_real_escape_string($password)); 其他方法转义字符串,如存在add_slashes,addcslashes,quotemeta,和更多的,但你会发现,当我们的目标是运行安全的查询,由大开发商喜欢mysql_real_escape_string或pg_escape_string(在PostgreSQL中的上下文。来源:stack overflow

保持可爱mmm

2020-05-11 13:45:50

0 浏览量

回答数 0

问题

mysql 函数find_in_set在hql中使用?报错

FIND_IN_SET(str,strlist)

假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。...

爱吃鱼的程序员

2020-06-14 21:52:53

0 浏览量

回答数 1

回答

它是什么? 您正在寻找mysql_fetch_assoc,顾名思义,它将返回一个关联数组(列名作为键,值作为行值)。

不同的功能会返回什么? 所有提到的函数将返回一个数组,它们之间的区别是在返回的对象中用作键的值。

mysql_fetch_row

此函数将返回一行,其中的值将按照在SQL查询中定义的顺序排列,并且键的范围0将比选定的列数小到-。

mysql_fetch_assoc

此函数将返回一行作为关联数组,其中列名将是存储相应值的键。

mysql_fetch_array

此函数实际上将返回一个数组,其中包含的内容mysql_fetch_row并mysql_fetch_assoc合并为一个。它同时具有数字键和字符串键,可让您以最容易的方式访问数据。

建议使用_assoc或选择使用_row。来源:stack overflow

保持可爱mmm

2020-05-17 19:10:05

0 浏览量

回答数 0

问题

MySQL和GROUP_CONCAT()的最大长度

我GROUP_CONCAT()在MySQL查询中使用,将多行转换为单个字符串。但是,此函数结果的最大长度为1024字符。

我非常清楚,我可以更改参数group_concat_max_len以增加此...

保持可爱mmm

2020-05-10 20:00:13

0 浏览量

回答数 1

问题

MySQL中的聚合函数-列表(如Oracle中的LISTAGG)?mysql

我需要函数,该函数返回字符串列表。

我在表中有这样的数据:

Id MyString

1 First 2 Second 3 Third 4 Fourth 我需要这样的功能(在oracle中类似的...

保持可爱mmm

2020-05-17 18:03:24

2 浏览量

回答数 1

回答

感谢您提出有趣的问题。干得好:

它逃脱了危险人物,

您的概念完全错误。 实际上“危险人物”是神话,没有神话。和mysql_real_escape_string转义,但只是一个字符串定界符。从这个定义中,您可以得出它的局限性-仅适用于string。

但是,它仍然容易受到其他攻击的攻击,这些攻击可能包含安全字符,但可能有害于显示数据或在某些情况下恶意修改或删除数据。

您在这里混合了所有内容。 说到数据库,

对于字符串,它不是脆弱的。只要您的字符串被引用和转义,它们就不能 “恶意修改或删除数据”。* 对于其他数据类型data-是的,它没有用。但这不是因为它“不安全”,而是因为使用不当。 至于显示数据,我认为它在与PDO有关的问题中是题外话,因为PDO也与显示数据无关。

转义用户输入

^^^另一个需要注意的错觉!

用户输入与转义绝对无关。从前一个定义中可以了解到,您必须转义字符串,而不是“用户输入”。因此,再次:

您有转义字符串,无论其来源如何 无论源如何,都无法逃脱其他类型的数据。 明白了吗? 现在,我希望您了解转义的局限性以及“危险人物”的误解。

据我了解,使用PDO /预备语句更安全

并不是的。 实际上,我们可以动态添加四个不同的查询部分:

一个字符串 一个号码 标识符 语法关键字。 因此,您可以看到转义仅涵盖一个问题。(但是,当然,如果将数字视为字符串(用引号引起来),则在适用时也可以使其安全)

而准备好的语句涵盖了-嗯-全部2个问题!很大;-)

对于其他两个问题,请参阅我的早期答案:在PHP中,在向数据库提交字符串时,我应该使用htmlspecialchars()还是使用正则表达式来处理非法字符?

现在,函数名称有所不同,因此我的mysql_query,mysql_fetch_array,mysql_num_rows等不再起作用。

那是PHP 用户的另一种严重的幻想,一种自然灾害,一场灾难:

即使使用旧的mysql驱动程序,也永远不要在其代码中使用裸露的API函数!必须将它们放在某种库函数中以供日常使用!(这并不是一个魔术,只是为了使代码更短,更少重复,防错,更一致和可读性更高)。

PDO也是如此!

现在再次提出您的问题。

但是通过使用它们是否可以消除使用mysql_real_escape_string之类的东西的需要?

是。

但是我认为这大致是应该从数据库中获取用户的想法。

不是要获取,而是要向查询添加任何数据!

如果我没记错的话,你必须在PDO:PARAM_STR之后给出一个长度

您可以,但不必。

现在,这一切安全吗?

在数据库安全方面,此代码中没有弱点。没什么要固定的。

为了确保显示安全-只需在该网站上搜索XSS关键字即可。

希望我对此事有所了解。

顺便说一句,对于长插入,您可以使用我有一天写的函数,使用PDO插入/更新帮助器函数

但是,我目前不使用准备好的语句,因为我喜欢使用自制的占位符,而不要使用上面提到的库。因此,要对付下面的riha发布的代码,该代码将短于这两行:

$sql = 'SELECT * FROM users WHERE name=?s AND type=?s AND active=?i'; $data = $db->getRow($sql,$_GET['name'],'admin',1); 但是,当然,您也可以使用准备好的语句使用相同的代码。

(yes I am aware of the Schiflett's scaring tales)来源:stack overflow

保持可爱mmm

2020-05-18 11:12:08

0 浏览量

回答数 0

回答

mysql将时间戳转成常用时间格式 在mysql中,一个时间字段的存储类型是int(11),怎么转化成字符类型,比方存储为13270655222,需要转化为yyyy -mm-dd的形式 使用 FROM_UNIXTIME函数,具体如下: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T 时间,24 小时(hh:mm:ss) %S 秒(00……59) %s 秒(00……59) %p AM或PM %w 一个星期中的天数(0=Sunday ……6=Saturday ) %U 星期(0……52), 这里星期天是星期的第一天 %u 星期(0……52), 这里星期一是星期的第一天 %% 一个文字“%”。 所有的其他字符不做解释被复制到结果中。 如: SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S') 可以自己指定格式。

wangccsy

2019-12-02 01:49:56

0 浏览量

回答数 0

回答

如果您正在寻找一种将日期标准化为MySQL格式的方法,请使用以下命令

$phpdate = strtotime( $mysqldate ); $mysqldate = date( 'Y-m-d H:i:s', $phpdate ); 该行$phpdate = strtotime( $mysqldate )接受一个字符串并执行一系列试探法,以将该字符串转换为unix时间戳。

该行$mysqldate = date( 'Y-m-d H:i:s', $phpdate )使用该时间戳和PHP date函数将其转换回MySQL的标准日期格式。

来源:stack overflow

保持可爱mmm

2020-05-10 17:47:15

0 浏览量

回答数 0

问题

mysql中字符串类型可以自动转为其它类型吗

在php中实现一个执行sql update语句的函数,传入参数表名,列值对的数组和where语句。在拼sql语句的时候,是否必须要知道列的类型,是否可以所有列的值都作为字符串处理(用引号括起来)。例如:update table1 set i...

蛮大人123

2019-12-01 19:49:23

989 浏览量

回答数 1

回答

使用MySQL 8.0+,您可以使用本机REGEXP_REPLACE功能。

12.5.2正则表达式:

REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]])

将字符串expr中与模式pat指定的正则表达式匹配的匹配项替换为替换字符串repl,并返回结果字符串。如果expr,pat或repl为NULL,则返回值为NULL。

和正则表达式支持:

此前,MySQL的使用的亨利斯宾塞正则表达式库来支持正则表达式运算符(REGEXP,RLIKE)。

使用Unicode国际组件(ICU)重新实现了对正则表达式的支持,该组件提供了完整的Unicode支持并且是多字节安全的。该REGEXP_LIKE()函数以REGEXP和RLIKE运算符的方式执行正则表达式匹配,它们现在是该函数的同义词。此外, REGEXP_INSTR(), REGEXP_REPLACE(),和 REGEXP_SUBSTR() 功能可用于找到匹配的位置,并执行串分别取代和提取。

SELECT REGEXP_REPLACE('Stackoverflow','[A-Zf]','-',1,0,'c'); -- Output: -tackover-low 来源:stack overflow

保持可爱mmm

2020-05-08 10:28:44

0 浏览量

回答数 0

问题

有没有简单的方法可以将MySQL数据转换为Title Case??mysql

我有一个MySQL表,其中一列中的所有数据都以大写形式输入,但是我需要转换为Title Case,并识别类似于Daring Fireball Title Case脚本的“小词” 。

我发现了将字符...

保持可爱mmm

2020-05-17 19:16:43

0 浏览量

回答数 1

问题

MySQL:无效使用组函数

我正在使用MySQL。这是我的架构:

供应商(sid:整数,sname:字符串,地址字符串)

零件(pid:整...

保持可爱mmm

2020-05-11 15:58:37

0 浏览量

回答数 1

回答

如日期和时间文字中所述:

MySQL可以识别DATE以下格式的值:

作为'YYYY-MM-DD'或'YY-MM-DD'格式的字符串。允许使用“宽松”语法:任何标点符号都可以用作日期部分之间的分隔符。例如,'2012-12-31','2012/12/31','2012^12^31',和'2012@12@31'是相等的。

作为没有格式'YYYYMMDD'或分隔符'YYMMDD'的字符串,前提是该字符串作为日期有意义。例如,'20070523'和'070523'被解释为'2007-05-23',但是'071332'是非法的(它具有无意义的月份和日期部分),成为'0000-00-00'。

作为数字YYYYMMDD或YYMMDD格式的数字,前提是该数字作为日期有意义。例如,19830905和830905被解释为'1983-09-05'。

因此,该字符串'08/25/2012'不是有效的MySQL日期文字。您有四个选择(按某种模糊的优先顺序,而没有您的要求的任何进一步信息):

配置Datepicker以使用支持的格式altField及其altFormat选项来提供日期:

$( "selector" ).datepicker({ altField : "#actualDate" altFormat: "yyyy-mm-dd" }); 或者,如果您希望用户看到YYYY-MM-DD格式的日期,则只需设置dateFormat选项即可:

$( "selector" ).datepicker({ dateFormat: "yyyy-mm-dd" }); 使用MySQL的STR_TO_DATE()函数转换字符串:

INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y')) 将从jQuery接收的字符串转换成PHP可以理解为日期的形式,例如一个DateTime对象:

$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']); 然后:

获取合适的格式化字符串:

$date = $dt->format('Y-m-d'); 获取UNIX时间戳:

$timestamp = $dt->getTimestamp(); 然后将其直接传递给MySQL的FROM_UNIXTIME()函数:

INSERT INTO user_date VALUES ('', '$name', FROM_UNIXTIME($timestamp)) 手动将字符串转换为有效的文字:

$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]"; 警告 您的代码容易受到SQL注入的攻击。 您确实应该使用准备好的语句,您将变量作为参数传递给该语句,这些参数无法通过SQL进行评估。如果您不知道我在说什么或如何解决它,请阅读Bobby Tables的故事。

此外,作为规定的出台对PHP手册章mysql_*功能:

自PHP 5.5.0起不推荐使用该扩展,不建议编写新代码,因为将来会删除该扩展。相反,应使用mysqli或PDO_MySQL扩展名。另请参见MySQL API概述,以获取选择MySQL API时的更多帮助。

您似乎在使用DATETIME或TIMESTAMP列来保存日期值;我建议您考虑改用MySQL的DATE类型。正如上文中DATE,DATETIME和TIMESTAMP类型:

该DATE类型用于具有日期部分但没有时间部分的值。MySQL检索并以'YYYY-MM-DD'格式显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。

该DATETIME类型用于包含日期和时间部分的值。MySQL检索并DATETIME以'YYYY-MM-DD HH:MM:SS'格式显示值。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

该TIMESTAMP数据类型被用于同时包含日期和时间部分的值。UTC TIMESTAMP的范围是UTC。'1970-01-01 00:00:01''2038-01-19 03:14:07'来源:stack overflow

保持可爱mmm

2020-05-10 21:55:07

0 浏览量

回答数 0

本文标签: 字符串函数listaggmysql