sql
  • visual-studio
  • npgsql
  • 2016-07-18 2 views 0 likes 
    0

    입력 된 텍스트와 동일한 내용이 아닌 검색 상자에 입력 된 텍스트를 포함하는 모든 줄을 반환하려면 SQL 문이 필요합니다.문자열과 같지 않은 문자열을 포함하는 줄을 반환하는 SQL select 문

    SELECT * from table WHERE name='" + this.SearchBoxTxt.Text + "' 
    

    이 단지 당신이

    하지만

    SELECT * from table WHERE name='%" + this.SearchBoxTxt.Text + "%' 
    

    만 포함 된 행을 반환하는 선이 문자열을 포함 얻기 위해 %를 사용한다고 가정하고 있다는 읽을 정확한 일치를 반환 % 문자 자체는 입니다. 예를 들어 "test"를 검색하면 결과로 "% test %"가 반환됩니다.

    SELECT * from table WHERE name=%'" + this.SearchBoxTxt.Text + "'% 
    SELECT * from table WHERE name='"% + this.SearchBoxTxt.Text + %"' 
    SELECT * from table WHERE name='" +% this.SearchBoxTxt.Text %+ "' 
    

    전혀 실행하지 마십시오.

    무엇이 누락 되었습니까?

    +2

    텍스트 상자에 이것을 입력하는 나쁜 사람을 상상해보십시오 :'; DROP TABLE mytable; -'시도하지 마세요, 누군가 그 일을한다고 상상해보십시오. 이것에주의를 기울이면 SQL 주입 공격을 읽어보십시오. – dasblinkenlight

    +0

    실제 질문에 대해서는'= '대신'LIKE'를 사용하십시오. – dasblinkenlight

    +0

    와우 그것은 그렇게 쉬웠다. 감사. – Martynas

    답변

    2

    = 연산자 대신 LIKE를 사용하십시오. 아래 내용을 시도하십시오.

    SELECT * from table WHERE name LIKE '%test%' 
    

    위와 같은 결과를 나타내는 문자열을 연결해야합니다.

    희망이 있습니다.

    +0

    LIKE 연산자와 적절한 와일드 카드를 사용하는 것이 맞지만 문자열 연결에 대해서는 완전히 잘못되었습니다. 매개 변수를 사용하는 것이 좋습니다. – Steve

    관련 문제