Как разработать незаказанный списки в CSS, поскольку запятая разделила текст

Ваша проблема состоит в том, что Вам нужен другой, где пункт в подзапросе, который определяет то, что делает дубликат:

INSERT INTO destTable
SELECT Field1,Field2,Field3,... 
FROM srcTable
WHERE NOT EXISTS(SELECT * 
                 FROM destTable 
                 WHERE (srcTable.Field1=destTable.Field1 and
                       SrcTable.Field2=DestTable.Field2...etc.)
                 )

, Как отмечено другой отвечающей стороной, внешнее объединение является, вероятно, более кратким подходом. Мой выше примера был просто попыткой объяснить использование Вашего текущего запроса, чтобы быть большим количеством understandible. Любой подход мог технически работать.

INSERT INTO destTable
SELECT s.field1,s.field2,s.field3,... 
FROM srcTable s 
       LEFT JOIN destTable d ON (d.Key1 = s.Key1 AND d.Key2 = s.Key2 AND...)
WHERE d.Key1 IS NULL

Оба из вышеупомянутых подходов предполагают, что Вы волнуетесь по поводу вставки строк из источника, который мог бы уже быть в месте назначения. Если Вы вместо этого обеспокоены возможностью, что источник имеет дублирующиеся строки, необходимо попробовать что-то как.

INSERT INTO destTable
SELECT Distinct field1,field2,field3,... 
FROM srcTable  

Еще одна вещь. Я также предложил бы перечислить определенные поля на Вашем операторе вставки вместо того, чтобы использовать ВЫБОР *.

62
задан Rory O'Kane 14 August 2014 в 19:32
поделиться

4 ответа

Чтобы удалить конечную запятую, используйте псевдокласс : last-child , например:

#taglist li:last-child:after {
    content: "";
}
66
ответ дан 24 November 2019 в 16:48
поделиться

Это зависит от в реализации браузера, но это должно работать. Хотя он полагается на first-child , что может ограничивать его использование, но по существу помещает запятую "," перед элементом списка, а не после него. Я не уверен, как на это повлияет padding / margin , но если вы используете `display: inline; с нулевыми полями и заполнением, все должно быть в порядке.

#taglist li:before {content: ", ";}
#taglist first-child {content: ""; } /* empty string */

Отредактировано: для ответа на исправления, предложенные в комментариях Якоба.

Следующие работы (демонстрационная страница здесь: http: // davidrhysthomas .co.uk / so / liststyles.html :

#taglist    {width: 50%;
        margin: 1em auto;
        padding: 0;
        }

li      {display: inline;
        margin: 0;
        padding: 0;
        }

li:before   {content: ", ";
        }

#taglist li:first-child:before
        {content: "";
        }

Хотя запятые странным образом плавают посреди ничего, и, честно говоря, я все равно предпочитаю принятый ответ.

6
ответ дан 24 November 2019 в 16:48
поделиться

Это способ, который ребята из A List Apart рекомендуют в своей статье « Списки приручения »:

#taglist ul li:after {
    content: ",";
}

#taglist ul li.last:after {
    content: "";
}

Для этого требуется последний элемент в вашем списке, отмеченный атрибутом class , равным «last»:

<ul id="taglist">
  <li>apple</li>
  <li>orange</li>
  <li class="last">banana</li>
</ul>
1
ответ дан 24 November 2019 в 16:48
поделиться

Не существует чистого css способа сделать это, совместимого с разными браузерами (спасибо Microsoft). Я предлагаю вам просто сделать это с помощью логики на стороне сервера.

Вы, вероятно, можете приблизиться, используя класс last в последнем li и используя фоновые изображения для всех lis, кроме последнего, но вы не будете уметь делать: last-child и content: в IE.

0
ответ дан 24 November 2019 в 16:48
поделиться