Как я могу проверить с помощью SQL, если столбец содержит список / строку, разделенную запятой? [Дубликат]

Следующее описание взято из этой страницы :

Метод getElementsByClassName () возвращает коллекцию всех элементов в документе с указанным именем класса, так как объект NodeList.

Объект NodeList представляет собой набор узлов. К узлам можно обращаться по номерам индексов. Индекс начинается с 0.

Совет. Вы можете использовать свойство length объекта NodeList для определения количества элементов с указанным именем класса, затем вы можете прокручивать все элементы и извлекать нужную информацию .

blockquote>

Итак, поскольку параметр getElementsByClassName принимает имя класса.

Если это ваше тело HTML:





то var menuItems = document.getElementsByClassName('menuItem') вернет коллекцию (а не массив) из трех верхних

s, поскольку они соответствуют заданному имени класса.

Затем вы можете перебирать эти узлы (

s в этот случай) с помощью:

for (var menuItemIndex = 0 ; menuItems.length ; menuItemIndex ++) {
   var currentMenuItem = menuItems[menuItemIndex];
   // do stuff with currentMenuItem as a node.
}

Подробнее о различиях между элементами и узлами см. в этой записи .

1
задан sqlchild 3 April 2012 в 09:18
поделиться

3 ответа

Здесь много обсуждений проблемы SPLIT в mysql:

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

2
ответ дан Billy McNuggets 23 August 2018 в 00:15
поделиться

Вы можете написать функцию Split в MYSQL, проверьте эту ссылку

из ссылки

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)

Пример

SELECT SPLIT_STR('a|bb|ccc|dd', '|', 3) as third;

+-------+
| third |
+-------+
| ccc   |
+-------+
1
ответ дан Naveen Kumar 23 August 2018 в 00:15
поделиться

Я разбираю строку с использованием цикла while и вставляю разделенные элементы во временную таблицу. Это сложно, но я копирую и вставляю код, а затем изменяю имя таблицы для удобочитаемости. Ниже приведен пример для разбора списка идентификаторов пользователей с разделителями-запятыми в таблице temp:

CREATE PROCEDURE spParse
(_UserList MEDIUMTEXT)
BEGIN
    DECLARE _Pos INT;
    DECLARE _Start INT;
    DECLARE _Item INT;
    DECLARE _Length INT;

    CREATE TEMPORARY TABLE IF NOT EXISTS TempUserList
    (
        UserID INT
    );

    SET _Length = LENGTH(_UserList);
    SET _Pos = 1;
    SET _Start = 1;
    divide_loop:LOOP
        IF _Pos > _Length Then
            LEAVE divide_loop;
        End If;
        IF SUBSTRING(_UserList,_Pos,1) = ',' Then
            IF _Pos - _Start > 0 Then
                IF IsNumeric(SUBSTRING(_UserList,_Start,_Pos-_Start)) Then
                    SET _Item = CONVERT(SUBSTRING(_UserList,_Start,_Pos-_Start),Signed);
                    INSERT INTO TempUserList (UserID)
                    VALUES (_Item);
                End If;                 
            End If;
            SET _Start = _Pos + 1;
        End If;
        SET _Pos = _Pos + 1;
    END LOOP divide_loop;
    IF _Start <= _Length Then
        If IsNumeric(SUBSTRING(_UserList,_Start,_Length - _Start + 1)) Then
            SET _Item = CONVERT(SUBSTRING(_UserList,_Start,_Length - _Start + 1),Signed);       
            INSERT INTO TempUserList (UserID)
            VALUES (_Item);
        End If;
    End If;

    SELECT UserID FROM TempUserList;

    DROP TABLE TempUserList;
END
0
ответ дан Russell Harkins 23 August 2018 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: