WITH
cte AS (
SELECT name,
SPLIT_PART(name, ' ', 1) first,
SPLIT_PART(name, ' ', -1) last
FROM outcomes
),
cte2 AS (
SELECT name, first, last,
LENGTH(name) - LENGTH(first) - LENGTH(last) - 2 middlelen
FROM cte
)
SELECT name,
first || ' ' || REPEAT('*', middlelen) || ' ' || last starname
FROM cte2
WHERE middlelen > 0 SELECT *
FROM table
WHERE path REGEXP '\\/(?:users|\\{[a-z]+\\})\\/(?:group|\\{[a-z]+\\})\\/(?:1|\\{[a-z]+\\})\\/(?:count|\\{[a-z]+\\})\\/(?:10|\\{[a-z]+\\})'<?php
preg_match('~/users/group/(?P<id>[^/]+)/count/(?P<cnt>[^/]+)~', '/users/group/1/count/10', $matches);
print_r($matches);
// Array(
// [0] => /users/group/1/count/10
// [id] => 1
// [1] => 1
// [cnt] => 10
// [2] => 10
// ) WITH `t` (`row`) AS (
SELECT 1
UNION SELECT 2
UNION SELECT 3
)
SELECT `row`, RAND("totally_not_random"), RAND(0), RAND(1) FROM `t`| row | RAND("totally_not_random") | RAND(0) | RAND(1) |
| --- | -------------------------- | ------------------- | ------------------ |
| 1 | 0.15522042769493574 | 0.15522042769493574 | 0.4054035371219773 |
| 2 | 0.620881741513388 | 0.620881741513388 | 0.8716141803857071 |
| 3 | 0.6387474552157777 | 0.6387474552157777 | 0.1418603212962489 | mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);WITH RECURSIVE `cte` AS (
SELECT `id`, `pid`, `name`, 0 AS `level`
FROM `table`
UNION SELECT `p`.`id`, `p`.`pid`, `p`,`name`, `cte`.`level` + 1 AS `level`
FROM `cte`
JOIN `table` AS `p` ON `p`.`id` = `cte`.`pid`
)
SELECT `id`, `name`, `level`
FROM `cte`
ORDER BY `level`