gpt4 book ai didi

mysql - 如何对mysql数据库中的字符串进行标记

转载 作者:行者123 更新时间:2023-11-29 21:26:18 25 4
gpt4 key购买 nike

是否有可能对 mysql 数据库(phpmyadmin)中的字符串进行标记?

我需要一个像这样分割字符串的函数

ID123|this sentence contains 5 tokens

进入

ID123|1|this
ID123|2|sentence
ID123|3|contains
ID123|4|5
ID123|5|tokens

感谢您的帮助!

最佳答案

字面答案:

您必须创建一个存储过程来分割字符串,然后多次应用它才能标记您的字符串:

CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');

这样使用:SELECT SPLIT_STR(string, delimiter,position)

但是,应该注意的是,这将需要大量手动生成的循环和检查才能完全实现,因为 MySQL 没有任何内置的真正的字符串操作函数,因此您需要完全用你自己的方式来做到这一点,并在此过程中使你的数据层更难维护,并且你的调试工作是噩梦般的。因此,这对您的问题来说是一个非常糟糕的解决方案,但这是对您所问问题的字面答案。

更好的答案:

在插入数据库之前,使用脚本语言执行字符串编辑任务。一般来说,字符串操作和逻辑不应该发生在数据层。

在 PHP 中:

$prefix = 'ID123|';
$string = 'ID123|this sentence contains 5 tokens';
$res = explode(' ', ltrim($prefix, NULL, $string));
foreach (&$res as $token) {
$token = $prefix . $token;
}

在 Javascript 中(如果您使用的是 Node.js 或其他东西):

var prefix = "ID123|";
var str = "this sentence contains 5 tokens";
var res = str.split(prefix).pop().split(" ");
for (i=0;i<res.length;i++) {
res[i] = prefix+res[i];
}

关于mysql - 如何对mysql数据库中的字符串进行标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35489440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com