Это может работать не во всех ситуациях, но для конкретного примера, который вы опубликовали, мы можем достичь вашего результата с помощью приведенного ниже кода.
По сути, мы конвертируем ваш массив в List
для доступа к методу contains()
. Затем мы разделяем исходную строку foo
, чтобы мы могли проверить, существует ли какое-либо из этих значений в исходном массиве.
import java.util.Arrays;
import java.util.List;
class Test {
public static void main(String[] args) {
String[] strings = {"1", "2", "10"};
String foo = "1 2 3 4 5 6 7 8 9 10";
// We'll use a StringBuilder for this
StringBuilder newString = new StringBuilder();
// First, we'll convert our strings array to a List so we have access to the [contains] method
List<String> stringsList = Arrays.asList(strings);
// Now, let's split foo into an array, using the space as a delimiter
String[] foos = foo.split(" ");
// Loop through each entry of foos and compare to each element in stringsList
for (int i = 0; i < foos.length; i++) {
if (stringsList.contains(foos[i])) {
newString.append(foos[i]);
}
}
System.out.println(newString);
}
}
1210
Вы можете отбросить существующее ограничение и добавить новое ограничение с помощью параметра NOCHECK. Это позволит вам добавить ограничение, даже если данные в таблице нарушают ограничение. Проблема с этим будет в том, что вы не сможете обновить существующие записи, не заставив их сначала передать ограничение.
ALTER TABLE SomeTable DROP CONSTRAINT gradeRule
GO
ALTER TABLE SomeTable ADD CONSTRAINT gradeRule ... WITH NOCHECK
GO
Хотя это возможно, обычно не рекомендуется из-за потенциальных проблем с будущими обновлениями данных. .
Если вы измените ограничение, все данные в таблице должны соответствовать этому ограничению. Итак, если у вас есть 2 строки данных с «умеренным» и вы попытаетесь изменить ограничение на «легкое», «среднее» и «жесткое», это не позволит вам.
Таким образом, вам придется сделать новое ограничение (легкое, умеренное, среднее , сложно, сложно) или обновить данные до новых значений - умеренный -> средний и т. д.
Отбросьте ограничение, а затем добавьте ограничение замены. Вы не можете обновить ограничение в SQL Server по крайней мере.
ALTER TABLE SomeTable DROP CONSTRAINT gradeRule
Кроме того, вам необходимо обновить данные таблицы перед добавлением нового ограничения, чтобы оно соответствовало новому ограничению.