, 26 2020 . 09:29
+
Akina: 5.6.
metakey , . , ( , - ). , - ( , , , ).
, , . ( ), 1 . , . 1 , , . , 1 1000, mysql - :
CREATE TABLE mysql.numbers (id INT PRIMARY KEY)
SELECT 1 + n1.num + n2.num * 10 + n3.num + 100
FROM (SELECT 0 num UNION SELECT 1 UNION ... UNION SELECT 9) n1
JOIN (SELECT 0 num UNION SELECT 1 UNION ... UNION SELECT 9) n2
JOIN (SELECT 0 num UNION SELECT 1 UNION ... UNION SELECT 9) n3;
. 1000,
SELECT j.article_id,
1 + LENGTH(metakey) - LENGTH(REPLACE(metakey, ',', '')) total
SUM(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(j.metakey, ','), ',', n.id), ',', -1) LIKE '%') matched
FROM joomla_content j
JOIN mysql.numbers n
GROUP BY j.article_id
HAVING ... ;
.
matched , ,
total - . , , -
total = matched, HAVING.
,
SUM(TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(j.metakey, ','), ',', n.id), ',', -1)) LIKE '%') matched
. , , .
-
mysql.numbers, 10-20, .
, , , -, . - .
https://forum.sources.ru/index.php?showtopic=419400&view=findpost&p=3837688
:
: SQL