2014-08-26 4 views
0

Я хотел бы создать функцию, которая выбирает все символы с их свойствами в db, кроме тех, кто выполняет эту функцию, и потому что я новичок в SQL, мне интересно, был способ сделать это: SELECT * FROM 'table name' EXCEPT 'the character executing the function'.Выделить все, кроме одного поля в SQL

Например, если игрок в игре rpg хочет напасть на кого-то, я хотел бы поместить весь список других игроков в базу данных, чтобы он мог атаковать. Но если я сделаю SELECT * FROM 'table name', он будет в списке, и я не хочу, чтобы он напал на себя ...

Я ищу в Google и здесь, но я нашел решение для выбора всего, кроме столбца, но я хочу что для поля.

Спасибо за чтение.

+0

Вы пробовали НЕ В? – MH2K9

+0

Вы должны добавить пример, потому что неясно, чего вы хотите –

+0

Вы не можете выбрать все столбцы, кроме одного с помощью команды, единственное решение, набирающее все поля, которые вы хотите. – BernardoLima

ответ

1

Вы должны добавить где положение:

SELECT * FROM 'tableName' WHERE characterId != 5 

5 здесь является ID от характера, выполняющей функцию

+0

Большое спасибо. Я не понимаю, как я не думал об этом. Может быть, я устал ахаха! –

+0

Этот ответ правильный и стоит меньше. – BernardoLima

+0

Я не голосовал, у меня нет 125 очков репутации, это не я ... –

1

Я предлагаю вам использовать sub query. Получить все имена, которые уже выполнены, функция & сохранить это имя в NOT IN. Для информации храните записи для тех имен, которые выполнили эту функцию. NOT IN пример

SELECT * FROM table_name WHERE name NOT IN (
    SELECT name FROM table_name_where_executed_name_stored WHERE executed = 1 
) 
+0

Является ли это решение лучше, чем Джонатан Клотье? –

+0

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

Смежные вопросы