mysql同じ文字列の最後の文字の位置を取得
詳細
ツリー構造のidを生成するときは直接
PID|数字|..の形式で数字を生成するのは、リストを得るたびにリストのidの最後の|記号の後ろの数字の最大値+1を取って新しいノードを保存することです.
しかし、私はmysqlの中でこのような関数サンプルがあることを発見していません.私は見つけられなかったかもしれません.だから、私は関数を書いてこのことを解決するしかありません.兄弟たちに役に立つことを望んで、もしmysqlの中である関数がこのようにすることができるならば、同じく言ってください
はい、文を見てください.
もちろんこの中で私が置き換えた記号は死んでいます.あなたたちは自分でパラメータを追加することができます.
これを终えて私の时、私はできると思って、それは1つの致命的な间违いが现れたことを知っていて、それは私がmaxの时に彼が得たのが1つの文字列であることを忘れて、ほほほ、マニュアルを调べてcast()が変换することができることを発见しました
ツリー構造のidを生成するときは直接
PID|数字|..の形式で数字を生成するのは、リストを得るたびにリストのidの最後の|記号の後ろの数字の最大値+1を取って新しいノードを保存することです.
しかし、私はmysqlの中でこのような関数サンプルがあることを発見していません.私は見つけられなかったかもしれません.だから、私は関数を書いてこのことを解決するしかありません.兄弟たちに役に立つことを望んで、もしmysqlの中である関数がこのようにすることができるならば、同じく言ってください
はい、文を見てください.
DELIMITER $$
DROP FUNCTION IF EXISTS `sose`.`lastIndexOf`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `lastIndexOf`(str varchar(100)) RETURNS int(11)
begin
DECLARE num int default 0;
DECLARE strs varchar(100);
set strs = str;
while instr(strs,'|') != 0 do
set num =num+instr(strs,'|');
set strs = substring(strs,instr(strs,'|')+1);
end while;
return num;
end$$
DELIMITER ;
もちろんこの中で私が置き換えた記号は死んでいます.あなたたちは自分でパラメータを追加することができます.
これを终えて私の时、私はできると思って、それは1つの致命的な间违いが现れたことを知っていて、それは私がmaxの时に彼が得たのが1つの文字列であることを忘れて、ほほほ、マニュアルを调べてcast()が変换することができることを発见しました
select max(CAST(substring(node_id,lastIndexOf(node_id)+1) as DECIMAL )) from bus_dir where NODE_PID='A01|001'